Pour faire une sauvegarde automatique j'utilise rsync, mais j'ai un problème de perte de données.
$SOURCE_DIR = login@serveur.com:/dossier/
$BACKUP_DIR = /dossier/local/
rsync --stats -arv --delete-after --backup --backup-dir=recycled $SOURCE_DIR $BACKUP_DIR
Le but est donc de sauvegarder le dossier $SOURCE_DIR dans $BACKUP_DIR et tous les fichier supprimés dans $SOURCE_DIR sont déplacés de $BACKUP_DIR vers le dossier ./recycled.
De même quand les fichiers sont modifiés dans le $SOURCE_DIR, l'ancienne version est déplacée dans le dossier ./recycled et la nouvelle version est dans le $BACKUP_DIR.
Le problème c'est que certains fichiés modifiés dans $SOURCE_DIR, au moment du backup ont été supprimés dans $SOURCE_DIR et dans $BACKUP_DIR, avec seulement l'ancienne version dans ./recycled.
Exemple :
Avant la sauvegarde :
$SOURCE_DIR : truc.txt (version 3, modifié récemment)
$BACKUP_DIR : truc.txt (version 2, du backup de la veille)
./recycled : truc.txt (version 1, présent dans $BACKUP_DIR avant le backup de la veille)
Après la sauvegarde :
$SOURCE_DIR : plus rien !
$BACKUP_DIR : plus rien !
./recycled : truc.txt (version 2)
C'est pas normal à mes yeux d'une part que rsync puisse modifier (et encore moins supprimer !) des fichiers dans le dossier source, mais là le problème c'est que je perds mon travail (v3 disparue).
Merci d'avance de votre aide.
# c'est ecrit dans ta ligne de commande
Posté par NeoX . Évalué à 4.
rsync --stats -arv --delete-after --backup --backup-dir=recycled $SOURCE_DIR $BACKUP_DIR
man dit :
--delete-after receiver deletes after transfer, not before
reste à savoir ce qui est considéré comme "receiver"
si ca se trouve voici ce qui se passe :
1°) rsync deplace dans recycled
2°) rsync transfert v3 en local
3°) rsync efface APRES le transfert
tu peux essayer avec l'option --dry-run pour afficher ce qui est modifié SANS effectuer la modif
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.