# ============================================================================== # SCRIPT DE SAUVEGARDE POWERSHELL - TÂCHE 3 (SAUVEGARDE INCRÉMENTIELLE 2) # ============================================================================== # Description : Sauvegarde incrémentielle des répertoires Ressources Humaines, # Marketing et IT depuis C:\DONNEES vers # le partage réseau \\TRUENAS\SAVE-client\ps1\Tache3. # Planification : Du lundi au vendredi, à 18h00. # ============================================================================== # ------------------------------------------------------------------------------ # CHAPITRE 1 : INITIALISATION ET MONTAGE DU LECTEUR RÉSEAU # ------------------------------------------------------------------------------ $RacineSource = "C:\DONNEES" $PartageReseau = "\\TRUENAS\SAVE-client\ps1\Tache3" $LettreLecteur = "S" $DossierLog = "C:\Logs_Sauvegarde" $FichierLog = "$DossierLog\Tache3_Incrementielle.log" # Liste des sous-dossiers ciblés pour la Tâche 3 $DossiersCibles = @( "02_Ressources_Humaines", "04_Marketing", "05_IT" ) Write-Host "--- CHAPITRE 1 : INITIALISATION ---" -ForegroundColor Cyan # Création du dossier de logs s'il n'existe pas if (-not (Test-Path -Path $DossierLog)) { New-Item -ItemType Directory -Path $DossierLog -Force | Out-Null } # Nettoyage préalable du lecteur S: s'il est déjà connecté if (Get-PSDrive -Name $LettreLecteur -ErrorAction SilentlyContinue) { Write-Host "Nettoyage d'une ancienne session du lecteur ${LettreLecteur}:..." -ForegroundColor Yellow Remove-PSDrive -Name $LettreLecteur -Force -ErrorAction SilentlyContinue } # Montage du partage réseau Tache3 sur la lettre S: Write-Host "Connexion au partage réseau $PartageReseau sur le lecteur ${LettreLecteur}:..." -ForegroundColor Cyan New-PSDrive -Name $LettreLecteur -PSProvider FileSystem -Root $PartageReseau -Persist -ErrorAction Stop | Out-Null # ------------------------------------------------------------------------------ # CHAPITRE 2 : TRAITEMENT DE LA SAUVEGARDE INCRÉMENTIELLE # ------------------------------------------------------------------------------ Write-Host "`n--- CHAPITRE 2 : EXECUTION DES COPIES INCRÉMENTIELLES ---" -ForegroundColor Cyan foreach ($Dossier in $DossiersCibles) { $CheminSource = Join-Path -Path $RacineSource -ChildPath $Dossier $CheminDest = Join-Path -Path "${LettreLecteur}:\" -ChildPath $Dossier Write-Host "Sauvegarde incrémentielle du dossier : $Dossier..." -ForegroundColor Green # Exécution de Robocopy pour la sauvegarde incrémentielle : # /E : Copie tous les sous-dossiers (y compris les vides) # /XO : Exclut les fichiers plus anciens (Incrémentielle : ne copie que les fichiers nouveaux ou modifiés) # /FFT : Tolérance de 2 secondes sur l'horodatage pour le NAS TrueNAS # /XJ : Exclusion des points de jonction # /R:3 : 3 tentatives maximum par fichier # /W:5 : 5 secondes d'attente entre deux tentatives # /NP : Masque la progression en pourcentage pour des logs lisibles # /LOG+ : Écriture cumulative dans le fichier journal robocopy $CheminSource $CheminDest /E /XO /FFT /XJ /R:3 /W:5 /NP /LOG+:$FichierLog } Write-Host "`nToutes les sauvegardes incrémentielles de la Tâche 3 sont terminées. Log : $FichierLog" -ForegroundColor Green # ------------------------------------------------------------------------------ # CHAPITRE 3 : NETTOYAGE ET DÉCONNEXION DU LECTEUR RÉSEAU # ------------------------------------------------------------------------------ Write-Host "`n--- CHAPITRE 3 : NETTOYAGE ---" -ForegroundColor Cyan Write-Host "Déconnexion du lecteur réseau ${LettreLecteur}:..." -ForegroundColor Cyan # Suppression et déconnexion du lecteur S: Remove-PSDrive -Name $LettreLecteur -Force -ErrorAction Stop Write-Host "Le lecteur ${LettreLecteur}: a été démonté avec succès. Opération terminée." -ForegroundColor Green