Lorsqu'on veut faire une sauvegarde automatique de ses fichiers personnels sous Windows, il y a la possibilité d'utiliser l'utilitaire de sauvegarde. Mais le fichier généré est malheureusement dans un format spécial sur lequel l'on n'a pas la main. Impossible par exemple de récupérer une archive et de l'extraire sous UNIX.
D'autre part, la gestion des sauvegardes ne s'effectue correctement que si la machine est allumée au moment programmé.
Vous avez aussi la possibilité d'utiliser un autre logiciel spécial.. mais de la même façon, rien n'implique que vous serez capable de l'utiliser sous un autre système, ou tout simplement sur une autre machine !
Pour effectuer une sauvegarde automatique exportable et gratuite, rien de plus simple.
Tout d'abord, il faut insister sur le fait de ne pas réaliser de sauvegarde sur le même disque ou la même nappe que le disque à partir duquel on réalise une sauvegarde. En effet, si le disque tombe en panne, toutes les données du disque, y compris les sauvegarges sont perdues. Sur une même nappe, il peut arriver que la panne d'un disque fasse griller le second disque également - j'en sais quelque chose, j'ai essuyé ce désagrément -.
Quelque soit la sauvegarde, il vaut donc mieux s'orienter vers une sauvegarde externe, sur disque ou serveur.
Dans tous les cas, la tâche de qauvegarde doit être lancée automatiquement.
Les logiciels de sauvegarde proposent en général des sauvegardes à heures fixes. Dans ce cas, on tombe à nouveau dans le même problème : si la machine n'est pas allmuée, la sauvegarde ne s'effectuera pas.
Le plus simple serait de pouvoir lancer la ta^che soit au démarrage (ce qui allonge la durée de démarrage) soit à l'extinction (malheureusement, Windows n'intègre pas facilement de procédures à l'extinction, contrairement à UNIX) ou encore pendant un moment d'inactivité.
C'est ce que propose schtasks, planificateurs de tâches sous Windows.
schtasks est intégré à Windows. Il permet de programmer l'exécution de tâches, de manière assez souple. Pour connaître ses capacités, n'hésitez pas à consulter l'aide. ce qui nous intéresse plus particulièrement est l'option /onidle, qui signifie que la tâche sera exécutée lorsque l'ordinateur est inactif.
Vous pouvez, par exemple, créer la tâche suivante :
schtasks /create /sc onidle /i 10 /tn Sauvegarde /tr F:\scripts\sauvegarde.bat /ru System
Cette tâche nommé Sauvegarde, exécute F:\scripts\sauvegarde.bat après 10 minutes d'inactivité pour le compte System
Il ne reste plus qu'à créer le fichier sauvegarde.bat.
Vous disposez d'une seconde machine ou d'un accès à un serveur distant, soit disposant d'un protocole d'accès local (samba) dans ce cas il suffit de créer un disque réseau et d'effectuer des sauvegardes à l'identique de sauvegarde sur un disque externe local, soit d'un accès uniquement en FTP.
Dans le cas d'un accès par FTP, les choses sont plus compliquées. En effet, l'on accède pas à un serveur FTP comme à un serveur de fichiers. Il est donc plus difficile de connaître les informations concernant les fichiers. Ces informations ne peuvent généralement pas se récupérer sans également télécharger le fichier, ce qui est lourd lorsque le volume des données est important. Le FTP implique donc, sauf dans la cas d'utilitaire spécifique comme PowerArchiveur, une sauvearge complète des données à chaque fois.
Pour une solution "ouverte", il faut :
Ensuite, réalisez les étapes suivantes :
@echo off REM setup des variables set HOME_DIR=Backup set TAR_FILE=BACKUP.TAR set GZ_FILE=BACKUP.TAZ set FTP_SERVER=adresse_du_serveur_FTP set USER=utilisateur set PASS=mot_de_passe set TIMESTAMP=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2% cd %HOME_DIR% IF EXIST T:\%HOME_DIR% (rmdir /S /Q T:\%HOME_DIR% ) IF EXIST T:\%GZ_FILE% (del /Q T:\%GZ_FILE% ) IF EXIST T:\%TAR_FILE% (del /Q T:\%TAR_FILE% ) mkdir T:\%HOME_DIR% echo Copie des fichiers à sauver XCOPY "F:\Mes Documents\*.*" T:\%HOME_DIR% /S /A /H /V /Y if errorlevel 5 goto diskspace if errorlevel 4 goto lowmemory if errorlevel 2 goto abort if errorlevel 1 goto nofile REM if errorlevel 0 goto compression :nofile echo Il n'existe pas de fichiers à copier. :lowmemory echo Mémoire insuffisante pour copier les fichiers ou echo lecteur ou syntaxe de ligne de commande non valide. :abort echo Vous avez appuyé sur Ctrl+C pour mettre fin à la copie. :diskspace echo Une erreur d'écriture s'est produite sur le disque. :compression echo Compression des fichiers ... tar -cvf T:/%TAR_FILE% T:/%HOME_DIR% REM gzip T:\%TAR_FILE% echo compression achevée REM fichiers zip existe, transfert ftp set ftpcmd=ftpcmd.txt echo open %FTP_SERVER% > %ftpcmd% echo USER %USER% %PASS% >> %ftpcmd% echo bin >> %ftpcmd% echo cd ArchiveLog >> %ftpcmd% echo put T:\%TAR_FILE% BACKUP-%TIMESTAMP%.TAR >> %ftpcmd% echo quit >> %ftpcmd% echo bye >> %ftpcmd% FTP -i -v -n -s:%ftpcmd% del /Q %ftpcmd% IF EXIST T:\%HOME_DIR% ( rmdir /S /Q T:\%HOME_DIR% ) IF EXIST T:\%GZ_FILE% (del /Q T:\%GZ_FILE% ) :exit
L'inconvénient de cette méthode est qu'elle nécessite d'un côté de l'espace disque pour copier, compresser les fichiers avant d'envoyer l'archive sur le serveur FTP. D'autre part, comme il n'existe pas de sauvegarde incrémentale, cela prend rapidement de la place sur le serveur et il faut faire régulièrement du nettoyage.
Dans le cas d'une sauvegarde sur serveur, si vous avez la main sur toutes les machines, vous pouvez mettre en place une solution de type Amanda. Ce système de suavegarde client-serveur libre est disponible pour toutes les plateformes.
Par disque externe, il faut considérer le disque dur ou la clef USB qui, dans le cas d'un faible volume de données (moins de 10 Go) fera office de disque. L'avantage de la clef USB est, outre son faible encombrement, sa faible consommation. elle peut donc rester branchée en permanence sans consommer beaucoup plus.
L'autre avantage de la clef USB est que si l'on décide de sauver tous ses documents personnels, on peut alors les emporter avec soi et les utiliser sur n'importe quelle autre machine.
Par clef USB, l'on peut entendre clef USB, mais aussi toute autre mémoire autoalimentée comme une carte SD, Compact Flash, etc. L'avantage est que, par exemple, l'on peut utiliser une vieille carte d'un appareil photo ou d'un PDA pour la sauvegarde des données PC, ou tout simplement pouvoir les interchanger.
Le disque dur peut être soit USB soit réseau. Mais il faut s'assurer dans tous les cas qu'il ne soit pas en veille au moment de la sauvegarde. En effet, la veille peut poser des problèmes de connexion. Si l'utilitaire de sauvegarde tente de se connecter et qu'il n'y arrive pas dans le laps de temps nécessaire au redémarrage du disque, alors la sauvegarde ne s'effectuera pas.
Ensuite, réalisez les étapes suivantes :
@echo off
xcopy f:\"Mes documents" Z:\"Mes documents" /M /D /S /E /V /H /R /I /Y
echo Sauvegarde réalisée > sauvegarde.log
xcopy s'occupe de la sauvegarde. Les options présentes ici permettent de ne sauver que les fichiers ayant l'attribut archive, modifiés depuis la dernière sauvegarde, et dans tous les sous-répertoires à partir de la racine Mes documents. L'intérêt de ne choisir que les fichiers avec l'attribut archive permet de sélectionner plus finement les fichiers à sauver automatiquement et ceux qui n'ont aucun intérêt.
Pour plus d'options, veuillez consulter l'aide xcopy.
xcopy ne permet que de copier des fichiers de façon fine mais sans pouvoir les supprimer. Rapidement, la gestion des copies n'est plus à l'image de la version d'origine. Pour aller plus loin, il faut utiliser robocopy qui permet d'obtenir des copies plus fidèles et surtout capable de supprimer dans la copie les fichiers supprimer dans l'orginal. De plus, robocopy est diponible en version DOS ou GUI. Pour en savoir plus sur robocopy, consultez le site Microsoft.
Avec robocopy, un batch tel que celui-ci sera sufficant pour copier en "miroir" :
@echo off REM sauvegarde du disque local cls color 1F echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» echo º sauvegarde de la clef USB º echo º ou du disque local º echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ echo. echo ÍÍÍÍÍÍÍÍÍÍÍ Début de sauvegarde ÍÍÍÍÍÍÍÍÍÍÍ robocopy . D:\Save\ /MIR /Z /R:2 /W:10 echo ÍÍÍÍÍÍÍÍÍÍÍ Fin de sauvegarde ÍÍÍÍÍÍÍÍÍÍÍ
Il faudra penser à installer robocopy soit dans le même répertoire que le batch, soit dans le répertoire system de la machine hôte.
La première copie s'exécutera de façon intégrale, les suivantes n'effectueront que la différence (delta) et seront plus rapide.
Pour un lancement simplifié ou automatique, il faudra utiliser autorun.inf à la racine du medium.
Cette solution peut être utile dans le cas d'un travailleur nomade qui pourra donc emmener partout une copie de ses documents sur la clef USB. Cependant, si l'on modifie les données sur la clef, il faut les resynchroniser de temps en temps dans l'autre sens, ce qui devient vite ingérable. La solution la plus simple consiste alors a définir Mes documents sur la clef USB, sur laquelle on enregistre tous les documents personnels et importants, nécessitant une sauvegarde. La sauvegarde est faite de la clef USB vers un disque local - et pourquoi pas de là vers un serveur -. Ainsi, l'on peut emporter la clef qui contient l'original des données qui peuvent vivre leur vie sur d'autres machines, d'autres systèmes et seront automatiquement sauvegardées par le script. En cas de plantage de l'ordinateur, la clef USB est préservée. L'on peut même continuer à travailler à l'aide d'un livecd...