Sauvegarder ses documents avec Windows

J'ai une de mes connaissances qui m'a demandé comment faire une sauvegarde avec Windows.
Il s'agit bien d'effectuer une réplication des données des documents de l'ordinateur vers une unité de stockage extérieure.

Je me suis fixé comme objectif de ne pas utiliser de programmes complémentaires à ceux déjà existants sous Windows et d'essayer de maitriser au maximum le processus, avec un temps minimum à l’exécution.

Voici mes explications. Travaux pratiques pour effectuer une sauvegarde “intelligente” sous Windows.

Le but est bien de maintenir l’image parfaite des dossiers ou documents de l'ordinateur (appelés source) vers une unité de stockage extérieure (appelée destination) sans tout recopier systématiquement. Pour ne pas faire une sauvegarde intégrale de tous vos dossiers à chaque fois, on va essayer d'utiliser un programme qui compare et sauvegarde les modifications des fichiers ou dossiers réalisées à l’aide d’un logiciel.

Pour plus de simplicité, j’ai préféré ne pas utiliser de programmes complémentaires mais uniquement ceux qui sont déjà disponibles sous Windows. Ceci afin que vous puissiez maitriser au maximum le processus, dans un temps raisonnable par son exécution.

Le programme choisi est robocopy. Il s'agit d'un programme en ligne de commande. Pour l'executer, nous allons programmer les commander dans un fichier d'execution appelé BATCH. Ce sont des fichiers terminant par l'extension .BAT.

Au premier lancement, le programme fait une copie intégrale de vos documents vers l'unité de sauvegarde. Cela peut prendre beaucoup de temps.
Aux lancements suivants, le programme effectue une sauvegarde incrémentielle (suppression, modification et ajout des fichiers), ce qui prend beaucoup moins de temps.

Sauvegardes des dossiers identifiés

J'aurai pu identifier les 4 dossiers principauxDocuments, Bureau, Téléchargement et le dossier AppData, mais j'effectue une sauvegarde complète du dossier utilisateur.

sauvegarde_current_user.bat
REM A ecrire dans un fichier sauvegarde_current_user.bat

REM Adapter les variables ci-dessous si nécessaire
 
set source_sauvegarde=%homedrive%%homepath%
set racine_sauvegarde=E:\sauvegarde
set destination_sauvegarde=%racine_sauvegarde%\%computername%%homepath%

REM **************************************
REM ***** NE PAS MODIFIER EN DESSOUS *****
REM **************************************

REM ** on cree le dossier de sauvegarde s'il n'existe pas
IF NOT EXIST "%destination_sauvegarde%" MKDIR -P "%destination_sauvegarde%"

REM ** on commence la sauvegarde
Robocopy.exe "%source_sauvegarde%" "%destination_sauvegarde%" /E /MIR /Z /DCOPY:T /COPY:DT /TIMFIX /R:0 /W:0 /TEE /NP

REM ** on termine la sauvegarde par marquer un orodatage
set dateCUR=%date:~6,4%%date:~3,2%%date:~0,2%
set timeCUR=%time:~0,2%%time:~3,2%%time:~6,2%
set dateTime=%dateCUR%_%timeCUR%
echo %dateTime% sauvegarde "%source_sauvegarde%" dans "%destination_sauvegarde%" effectuee >>"%racine_sauvegarde%\infos.txt"

Il ne faut pas modifier les fichiers et dossiers de la sauvegarde externe au risque de perdre votre travail.

Sauvegardes les dossiers de tous les utilisateurs

Pour se simplifier la tâche on pourrait sauvegarder tous les fichiers et dossiers présents dans le dossier des utilisateurs.
Mais ce n'est pas si simple, car les dossiers des utilisateurs peuvent être protégés en lecture. Il faudrait avoir des droits plus étendus. On parle alors de droit ACL. Une exécution du script avec les droits administrateur permettrait de contourner le problème.

sauvegarde_all.bat
REM A ecrire dans un fichier sauvegarde_all.bat

REM Adapter les variables ci-dessous si nécessaire
 
set source_sauvegarde=%homedrive%\%homepath%\..
set racine_sauvegarde=V:\sauvegarde
set destination_sauvegarde=%destination_sauvegarde%\%computername%\

REM **************************************
REM ***** NE PAS MODIFIER EN DESSOUS *****
REM **************************************

REM ** on cree le dossier de sauvegarde s'il n'existe pas
IF NOT EXIST "%destination_sauvegarde%" MKDIR -P "%destination_sauvegarde%"

REM ** on commence la sauvegarde
Robocopy.exe "%source_sauvegarde%" "%destination_sauvegarde%" /E /MIR /Z /DCOPY:T /COPY:DT /TIMFIX /R:0 /W:0 /TEE /NP

REM ** on termine la sauvegarde par marquer un orodatage
set dateCUR=%date:~6,4%%date:~3,2%%date:~0,2%
set timeCUR=%time:~0,2%%time:~3,2%%time:~6,2%
set dateTime=%dateCUR%_%timeCUR%
echo %dateTime% sauvegarde effectuee completee >>"%destination_sauvegarde%\infos.txt"

Il va falloir vérifier que les fichiers contenu dans la source soit également dans la destination. Pas un de plus, pas un de moins. C'est là que les choses se corsent. Lors de mes tests, il est apparu que l'explorateur de fichier calculé n'importe quoi, n'importe comment.
Il a fallu que je retourne dans une fenêtre de ligne de commandes (fenêtre DOS) et jouer avec la commande dir.

Je vous détaillera cela ultérieurement. Revenez plus tard sur cette page SVP.

Prochainement

  • une vidéo pour montrer comment j'ai fait.
  • la vérification du contenu synchronisé.
  • le changement de lecteur à chaque branchement d'un disque externe ?
  • faut-il préférer une sauvegarde externe ou interne ?
  • faut-il faire confiance à une sauvegarde sur clé USB, disque SSD, DVD ?
  • corriger les fautes.
  • compléter l'article suivant vos retours
  • informatique/robocopy_sauvegarder_avec_windows.txt
  • Dernière modification: 2018/12/01 23:17
  • par Cedric ABONNEL