J'utilise pour ma part une sauvegarde incrémentielle avec rsync via ssh, mais qui me permet de restaurer très facilement les données en utilisant les hard links côté sauvegarde.
#!/bin/shdate=`date "+%Y-%m-%dT%H-%M-%S"`# / at the end is mandatory !SOURCE_DIR=/media/documents/perso/
TARGET_HOST=backup-server.mondomaine.tld
TARGET_USER=chtitux
TARGET_DIR=/var/backups/calvin/perso
# -6 is for IPv6 ONLY# $SOURCE_DIR/rsync-exclude has to exist# RTFM rsync too ;)
rsync -6 --archive --one-file-system --hard-links \
--human-readable --inplace --numeric-ids --delete \
--partial --progress \
--compress \
--delete-excluded \
--exclude-from=$SOURCE_DIR/rsync-exclude \
--link-dest=$TARGET_DIR/current \$SOURCE_DIR$TARGET_USER@$TARGET_HOST:$TARGET_DIR/incomplete_back-$date
ssh $TARGET_USER@$TARGET_HOST"mv $TARGET_DIR/incomplete_back-$date $TARGET_DIR/back-$date \ && rm -f $TARGET_DIR/current \ && ln -s back-$date $TARGET_DIR/current"
À la première synchronisation, tout est envoyé dans un dossier distant qui finira par s'appeler /var/backups/calvin/perso/back-2011年04月30日T15-58-21 , et un lien symbolique fait pointer /var/backups/calvin/perso/current vers ce dossier
Les fois suivantes, ça compare ma copie locale à /var/backups/calvin/perso/current , et ça transfert le différentiel vers /var/backups/calvin/perso/incomplete_back-2011年04月30日T15-58-21
rsync utilise les hard links pour représenter les fichiers qui n'ont pas changés : à la fin du transfert avec rsync, mon répertoire distant incomplete_back-2011年04月30日T15-58-21/ contient donc les nouveaux fichiers et les fichiers qui n'ont pas changé, sans que ça prenne de la place supplémentaire (modulo l'espace disque occupé par un lien)
à la fin du transfert via rsync, ssh renomme incomplete_back-2011年04月30日T15-58-21/ en back-2011年04月30日T15-58-21/ , et recrée le lien symbolique current vers ce dernier
finalement, mon dossier current/ contient donc l'ensemble de ma dernière sauvegarde, donc rsync compare toujours au dernier état. Si je veux restaurer, il faut juste que je copie current/* , je n'ai rien à assembler moi-même. De plus, si j'interromps une sauvegarde, je vais avoir un répertoire incomplete_back-2011年04月30日T15-58-21/ qui traîne dans le répertoire des backups, mais ça n'impactera pas la prochaine sauvegarde (qui se fera depuis la dernière complète)
J'ai donc :
un transfert de ce qui change uniquement
une copie distante facilement restaurable
un transfert sécurisé via ssh (et clé publique)
une tolérance face aux coupures pendant la sauvegarde
l'obligation d'avoir un système de fichier qui prend en charge les hard links (ext?, ça marche, je n'ai pas testé avec NTFS)
Si vous voyez des améliorations à faire, je suis preneur également !
[^] # Re: Rsync local et distant
Posté par chtitux (site web personnel) . En réponse au journal Et vous, quelle sécurité pour vos sauvegardes?. Évalué à 10.
J'utilise pour ma part une sauvegarde incrémentielle avec rsync via ssh, mais qui me permet de restaurer très facilement les données en utilisant les hard links côté sauvegarde.
Ce sont juste 3 commandes, très largement inspiré par http://blog.interlinked.org/tutorials/rsync_time_machine.html :
/var/backups/calvin/perso/back-2011年04月30日T15-58-21, et un lien symbolique fait pointer/var/backups/calvin/perso/currentvers ce dossier/var/backups/calvin/perso/current, et ça transfert le différentiel vers/var/backups/calvin/perso/incomplete_back-2011年04月30日T15-58-21incomplete_back-2011年04月30日T15-58-21/contient donc les nouveaux fichiers et les fichiers qui n'ont pas changé, sans que ça prenne de la place supplémentaire (modulo l'espace disque occupé par un lien)incomplete_back-2011年04月30日T15-58-21/enback-2011年04月30日T15-58-21/, et recrée le lien symbolique current vers ce derniercurrent/contient donc l'ensemble de ma dernière sauvegarde, donc rsync compare toujours au dernier état. Si je veux restaurer, il faut juste que je copiecurrent/*, je n'ai rien à assembler moi-même. De plus, si j'interromps une sauvegarde, je vais avoir un répertoireincomplete_back-2011年04月30日T15-58-21/qui traîne dans le répertoire des backups, mais ça n'impactera pas la prochaine sauvegarde (qui se fera depuis la dernière complète)Si vous voyez des améliorations à faire, je suis preneur également !