Logiciels de sauvegarde
La mise en place d'un outil sauvegarde est essentielle, que l'on soit administrateur d'un parc informatique ou simple utilisateur d'un ordinateur personnel.
Lorsqu'on ne souhaite pas développer sa propre solution, alors se pose la question du choix parmi les logiciels existants.
Voici donc un comparatif de quelques logiciels libres dédiés à la sauvegarde de fichiers.
Liste de logiciels
Liste non-exhaustive !
- Areca Backup : très complet pour la sauvegarde locale
- BackupPC : système de sauvegarde client/serveur haute performance
- backup-light : Un petit utilitaire de sauvegarde bash
- backup-manager : Un outil de sauvegarde en ligne de commande pour GNU / Linux
- fwbackups : Un programme riche en fonctionnalités de sauvegarde utilisateur
- luckybackup : Un outil de sauvegarde et de synchronisation puissant, rapide et fiable
- rdiff-backup : sauvegarde et synchronisation pratique et transparente
- amanda : Une solution réseau capable de sauvegarde sur bande
- autoarchive : Un outil de sauvegarde simple qui utilise tar
- backintime : Un outil de sauvegarde simple équivalent à Apple Time Machine
- bacula : Une solution de sauvegardes client/serveur pour entreprise
- bontmia : sauvegarde sur le réseau vers de multiples archives incrémentale
- dar : Logiciel pour faire des sauvegardes/restauration incrémentales sur CD/DVD
- dirvish : système de rotation de sauvegarde en réseau rapide sur disque
- duplicity : sauvegarde réseau efficace et chiffrée en utilisant l'algorithme rsync
- deja-dup : interface graphique pour duplicity
- fsarchiver : sauvegarde/déploiement du système de fichiers sûre et flexible
- Holland :
Pays,Président, Programme de sauvegarde modulaire - kbackup : Sauvegardez vos données dans un moyen simple et convivial
- safekeep : Système de sauvegarde client/serveur basé sur rdiff-backup
- snap: Un système modulaire de sauvegarde / restauration du système par snapshot
- tarsnap: Service en ligne de sauvegarde cryptée
- TimeVault : équivalent à Apple Time Machine (plus maintenu)
- Flyback : équivalent à Apple Time Machine
- Simple Backup suite (Sbackup) : outil facile et intégré à gnome
- Backerupper : sauvegarde personnelle à traver le réseau
Outils annexes :
- seivot: outil de benchmarking pour les programmes de sauvegarde
- genbackupdata: Un programme pour générer des données de test pour tester les logiciels de sauvegarde
Fonctionnalités
Selon ses besoins, il faudra être attentifs à certaines fonctionnalités particulières :
- type : logiciel client / serveur ou sauvegarde autonome
- modes de sauvegardes : complètes / incrémentale / différentielles
- restauration : cela paraît évident mais certains logiciels ne proposent pas d'interface de restauration ! A l'inverse, d'autres vont jusqu'à permettre la restauration d'un fichier à une date particulière
- planification : pouvoir automatiser l'éxécution
- compression : c'est que ça prend de la place !
- chiffrement : utile si le media de sauvegarde n'est pas stocké dans un coffre
Tableau comparatif
Remarque : l'absence de certaines fonctionnalités ci-dessous veut simplement dire qu'elle ne sont pas intégrées dans le logiciel lui-même. Mais on peut souvent les obtenir par d'autres moyens : restauration par tar, planification par cron, compression par gzip, chiffrement par gpg, ...
Nom | OS | Type | Sauvegardes | Restauration | Planification | Filtres | Compression | Chiffrement | Commentaires |
---|---|---|---|---|---|---|---|---|---|
Areca Backup | Lin, Win | local | complètes, différentielles, incrémentales | OUI (avancé) | manuelle | OUI (avancé) | OUI (zip/zip64) | OUI (AES) |
Restauration complète ou avancée avec recherche par fichier et par date. |
BackupPC | Lin, Win | client / serveur | complètes, différentielles, incrémentales | OUI | OUI | OUI | OUI | ? | |
Backup-light | Lin | local | complètes, incrémentales | ? | ? | ? | ? | ? | |
Backup Manager | Lin | local | complètes, incrémentales | NON | OUI | ? | OUI | ? |
Crée des .tar.gz |
fwbackups | Lin, Mac, Win | local | complètes, incrémentales (non compressées) | OUI | OUI | OUI | OUI | NON | Incrémental impossible si la compression est activée (gz ou bz) |
luckybackup | Lin, Mac, Win | local | complètes, incrémentales | OUI | OUI | OUI | NON | NON |
C'est une interface graphique (assez complète) pour rsync |
kbackup | Lin | local | complètes, incrémentales | NON | NON | OUI | OUI | NON |
Très simple, crée des fichiers tar, chaque fichier est compressé séparément |
Bonnes pratiques
Voici quelques conseils utiles.
- vérifier souvent les logs des sauvegardes (les envoyer par mail si possible)
- utiliser un jeu de médias externes (disque dur, DVD, bande magnétique, ...)
- stocker les médias de sauvegarde dans un lieu différent
- vérifier l'espace disponible des médias régulièrement
- si nécessaire, chiffrer les sauvegardes et protéger la clé de chiffrement en plusieurs emplacements (papier, mail, clé USB, ...)
- faire des test de restauration réguliers
Exemple de plan de sauvegarde :
- 1 sauvegarde complète par mois
- 1 sauvegarde différentielle par semaine
- 1 sauvegarde incrémentale par jour
- choisir la durée de rétention en fonction des besoins
Cas concret : sauvegarde de portable
Description
J'ai besoin de réaliser une sauvegarde régulière de mon portable.
Malgré une mobilité moyenne (travail, maison, peu de déplacements), je dois pouvoir réaliser une sauvegarde locale que je synchroniserais ensuite sur un serveur et/ou un disque externe.
Le logiciel de sauvegarde retenu est Areca Backup (même s'il utilise java) pour ses nombreux points forts :
- sauvegardes compressées
- fusion de sauvegardes
- critères d'exclusions très avancés
- restauration possible d'un seul fichier avec recherche
La version utilisée est areca-7.2.13-x86_64 (la version areca-7.2.14 qui vient de sortir semble bugée).
La planification se faire grâce à cron.
Configuration de Areca
2 tâches sont créées :
- sauvegarde du système (/etc et /root)
- sauvegarde du répertoire utilisateur (/home/user)
Exemple de configuration au format xml (Clic-droit > Editer au format XML) de la sauvegarde utilisateur.
Voir notamment les nombreuses exclusions par expressions régulières.
<?xml version="1.0" encoding="UTF-8"?> <target version="7" uid="283686751" follow_symlinks="false" register_empty_directories="true" follow_subdirs="true" xml_security_copy="true" name="Users" forward_preproc_errors="true" description="sauvegarde utilisateur"> <source path="/home/user"/> <medium type="directory" file_compression="true" policy="hd" path="/home/Sauvegardes/areca/backups/283686751" archive_name="%YY%-%MM%-%DD%" encrypted="false" track_permissions="true" overwrite="false" zip_level="4" zip_ext="false" zip_charset="UTF-8" zip64="true"> <handler type="standard"/> <transaction_configuration use_transactions="true" transaction_size="102400"/> </medium> <addons> </addons> <filter_group logical_not="false" operator="and" > <extension_filter logical_not="true"> <ext>.tmp</ext> <ext>.temp</ext> </extension_filter> <regex_filter logical_not="true" rgpattern=".*/.?c?[Cc]ache/" mode="full_path" full_match="false"/> <regex_filter logical_not="true" rgpattern=".*/tmp/" mode="full_path" full_match="false"/> <regex_filter logical_not="true" rgpattern=".*/.?[Tt]humbnails/" mode="full_path" full_match="false"/> <regex_filter logical_not="true" rgpattern=".*/T[ée]l[ée]chargements/" mode="full_path" full_match="false"/> <regex_filter logical_not="true" rgpattern=".*/Virtual[Bb]ox.*/" mode="full_path" full_match="false"/> <regex_filter logical_not="true" rgpattern=".*~$" mode="file_name" full_match="false"/> <regex_filter logical_not="true" rgpattern=".*/.wine/" mode="full_path" full_match="false"/> <regex_filter logical_not="true" rgpattern=".*/nepomuk/" mode="full_path" full_match="false"/> <regex_filter logical_not="true" rgpattern=".*/akonadi/" mode="full_path" full_match="false"/> <regex_filter logical_not="true" rgpattern="\..*lock" mode="file_name" full_match="false"/> <locked_filter logical_not="true"/> </filter_group> <email_processor execute_after="true" run_if_success="true" run_if_error="true" run_if_warning="true" run_if_backup="true" run_if_merge="false" run_if_check="false" recipients="email@domain.tld" smtp_host="smtp.domain.tld:465" smtp_user="email@domain.tld" smtp_password="password" smtp_s="true" title="[areca] %COMPUTER_NAME% %TARGET_UID% : %SUCCESS%" from="email@domain.tld" introduction="ARCHIVE : %ARCHIVE% ARCHIVE_NAME : %ARCHIVE_NAME% TARGET_UID : %TARGET_UID% TARGET_NAME : %TARGET_NAME% COMPUTER_NAME : %COMPUTER_NAME% USER_NAME : %USER_NAME% DATE : %DATE% %TIME% SUCCESS : %SUCCESS% WARNING : %HAS_WARNINGS%" statistics="true" list_stored_files="true" max_listed_files="1000"/> </target>
Planification
Areca Backup n'intègre pas directement d'outil de planification et recommande d'utiliser celui fourni avec l'OS.
Par contre, Areca fourni une version en ligne de commande et un assistant pour générer les scripts à lancer (Clic-droit > Assistants > Générer une stratégie).
Dans ce cas, j'ai choisi de générer 3 scripts :
- une archive tous les 1 jours 7 fois (= une sauvegarde incrémentale tous les jours)
- puis une archive tous les 7 jours 3 fois (= 1 fusion hebdomadaire avec 3 semaines rétention)
- puis une archive tous les 28 jours 1 fois (= 1 fusion des hebdomadaires tous les 28 jours, rétention 1x)
Voici la planification crée dans un fichier /etc/cron.d/areca :
SHELL=/bin/bash LANG=fr_FR.UTF-8 LANGUAGE=fr LC_CTYPE=fr_FR.UTF-8 areca_sched=/home/Sauvegardes/areca/schedule # Sauvegardes par areca 7.2.13 x86_64 # Planification : # 1_days = backup tous les 1 jours à 12h30 # 7_days = merge tous les 7 jours à 13h30 # 28_days = merge tous les 28 jours à 15h30 # # .---------------------- minute (0 - 59) # | .------------------ hour (0 - 23) # | | .-------------- day of month (1 - 31) # | | | .---------- month (1 - 12) OR jan,f # | | | | .------ day of week (0 - 6) (Su # | | | | | # * * * * * user command to be executed 30 12 * * * root ${areca_sched}/283686751_every_1_days.sh >> ${areca_sched}/areca.log 30 13 * * */7 root ${areca_sched}/283686751_every_7_days.sh >> ${areca_sched}/areca.log 30 15 * * */28 root ${areca_sched}/283686751_every_28_days.sh >> ${areca_sched}/areca.log
Synchronisation
Ces sauvegardes étant locales, il est nécessaire de les synchroniser sur un support externe en cas de perte du disque. Cela se fera grâce à rsync lancé par un script "maison" (voir sauvegarde_smb.sh sur gitorious.org) lui-même planifié par anacron.
Liens
Quelques liens intéressants.
Sur les sauvegardes :
- Best Linux backup software: 8 tools on test
- 21 of the Best Free Linux Backup Software
- (R)évolutions dans le monde de la sauvegarde de données
- Les solutions de sauvegarde Open Source (interview)
- linuxgazette (voir le tableau "backup policies")
Sur cron et anacron :
- CRON : Configuration de tâches automatisées
- Cron and Crontab usage and examples
- interaction cron et anacron
- Planifier des tâches pour l'ordinateur
Sur rsync et les partages réseaux :