Voici un petit script batch (windows) créé par mes soins qui permet de faire un backup (archivage et compression) d’un répertoire, et de faire une rotation.
Ce script n’est pas directement utilisable, vous pouvez vous en inspirer, mais il ne fonctionnera pas sans adaptation de votre part.
N’hésitez pas à me faire parvenir vos feedback et améliorations.
Dépendances:
- Robocopy (intégré à Windows)
- 7Zip (libre à vous de changer)
Fonctionnalités:
- Compression avec 7zip du répertoire donné
- Stockage en local de l’archive
- Stockage de l’archive sur un machine distante (copie miroir grâce à robocopy)
- Rotation de sauvegarde (vous devez créer un fichier texte num.txt qui doit contenir 0)
- Suppression des fichiers originaux après compression.
Bugs:
- Sur certains systèmes Windows la commande date est à changer
Testé sous Windows Server 2012 R2, exécuté tous les jours grâce aux taches planifiées
@echo off REM Script créé par Matteo D'Addamio REM v0.9 REM Sauvegarde d'un dossier, compression, archivage et rotation REM Dépendances = ROBOCOPY / 7zip REM Répertoire Source set dir_source= REM Répertoire de destination distant set dir_dest_distant= REM Répertoire de destination local set dir_dest_local= REM Nombre de jours de grace (TTL) set dtr=15 REM reglage de la date set date_today=%date% REM initialisation des variables pour la gestion des dates set /p num= < %dir_source%\num.txt set /a num_today=(%num%)+1 echo %num_today% > %dir_source%\num.txt set /a num_dtr=%num_today%-%dtr% REM Chemin de 7z set path_7z=C:\"Program Files"\7-Zip\7z.exe REM Compression de l'archive %path_7z% a -t7z -m0=LZMA2 -mmt=on -mx9 %dir_dest_local%\"%date_today%-N%num_today%".7z %dir_source% REM Suppression du dossier original erase /S /Q %dir_source%\* echo Suppression des sauvegardes plus vielles de %dtr% jours erase /Q %dir_dest_local%\*-N%num_dtr%.7z echo sauvegarde de %dir_source% vers %dir_dest% robocopy /MIR %dir_dest_local% %dir_dest_distant% echo FIN exit