Vous cherchez une solution de backup simple, efficace et fiable sous Linux ?

Rsync tout simplement.

Cet outil en ligne de commande est un incontournable pour qui veut mettre en place une stratégie de sauvegarde robuste sans s’encombrer de solutions complexes ou payantes.

Pourquoi choisir rsync ?

Rsync présente plusieurs avantages qui en font un choix de premier ordre pour vos backups :

  • Transfert optimisé : seules les différences entre les fichiers sont copiées
  • Préservation des permissions, dates et attributs des fichiers
  • Support de la compression à la volée
  • Possibilité de reprendre un transfert interrompu
  • Fonctionnement en local ou via SSH pour des sauvegardes distantes

Les différents types de backup possibles

On peut facilement mettre en place différents types de sauvegardes selon vos besoins :

Backup intégral

Copie complète de toutes les données à chaque exécution. Simple mais gourmand en espace disque.

Backup incrémental

Sauvegarde uniquement les fichiers modifiés depuis la dernière sauvegarde (quelle qu’elle soit). Économe en espace mais restauration plus complexe.

Backup différentiel

Sauvegarde les modifications depuis la dernière sauvegarde complète. Compromis intéressant entre espace et facilité de restauration.

Mise en pratique

Ça demande un peu de scripting (basique) au début, mais ça en vaut vraiment la peine.

Pour démarrer et voir des exemples concrets d’utilisation de rsync comme utilitaire de backup, je vous recommande cette excellente documentation : https://wiki.archlinux.org/index.php/rsync#As_a_backup_utility

Vous y trouverez des cas d’usage pratiques, des options utiles et des scripts prêts à l’emploi que vous pourrez adapter à vos besoins spécifiques.

Automatisation

Une fois votre script de backup créé, pensez à l’automatiser avec cron pour des sauvegardes régulières sans intervention manuelle. C’est la clé d’une stratégie de backup efficace.

Rsync reste une solution éprouvée, légère et infiniment configurable. Un vrai couteau suisse du backup sous Linux.

Si vous cherchez comment cloner (aspirer) un site web en local, il existe des aspirateurs de sites internet.

Le plus connu s’appelle HTTrack il est open source et fonctionne bien.

C’est utile pour sauvegarder/archiver un site, faire un miroir (et le mettre à jour) ou bien lorsqu’il y a un besoin d’accéder à des contenus hors ligne.

Attention, il ne sauvegarde que le contenu visible d’un site web (HTML/CSS et images) donc évidemment pas de code server-side ni de backend.

La sauvegarde peut prendre du temps en fonction de votre connexion internet.

Sur les distributions basées sur Debian on l’installe via

apt-get install httrack

Ensuite, pour le faire fonctionner, la syntaxe est :

httrack -w nomdusite.com

Assez simple, non ?

J’ai fait rapidement un petit script bash qui permet d’aspirer, archiver et compresser un site.

#!/bin/bash
## Aspirateur de site HTTRACK - M4t.xyz
path="/root/httrack" #Chemin de destination
projet=$1
compression=1 # 1 = activé ; 0 = désactivé

if [ $# -eq 0 ]
  then
    echo "Nom du site en argument SVP"
    exit 1
fi

httrack -w $projet -O $path/$projet -F "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1)" 
#le -F permet de changer d'user-agent afin d'éviter les bans...

if (( $compression == 1 )); then
        tar -czf $path/$projet.tar.gz $path/$projet && rm -R $path/$projet
fi

Il existe bien sûr une version pour Windows (WinHTTrack)

Bref, utile pour sauver des petits bouts de web (blogs, …).

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 feedbacks et améliorations.

Dépendances :

  • Robocopy (intégré à Windows)
  • 7-Zip (libre à vous de changer)

Fonctionnalités :

  • Compression avec 7-Zip du répertoire donné
  • Stockage en local de l’archive
  • Stockage de l’archive sur une 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 tâches 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 / 7-Zip

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 grâce (TTL)
set dtr=15
REM réglage 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 vieilles 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