Bonjour,
J'essaie de créer un script bash qui doit faire un backup differentiel entre une machine Ubuntu et un serveur de stockage sous Debian. Le tout via SSH.
- Emplacement du dossier à sauvegarder (ubuntu) : /home/mathieu/backup/machines
- Emplacement du dossier où vont ce trouver les sauvegarde differentiel (debian) : /home/user-backup/dif-backup/dif/<date sauvegarde>/
- Emplacement du dossier où va ce trouver la sauvegarde complete (debian) : /home/user-backup/dif-backup/complet
Si la sauvegarde complète n'est pas presente alors je la crée avec :
Jusque là tout vas bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 rsync -avP --bwlimit="$debit" -e "ssh -p $sshport" \ "/home/mathieu/backup/machines/" \ "$utilisateur"@"$ipNas":"$destinationBackupComplet"
je veux sauvegarder que les modification apporté dans "/home/mathieu/backup/machines" (ubuntu), pour ce faire je compare le contenu de "/home/mathieu/backup/machines" avec le contenu du backup complet "/home/user-backup/dif-backup/complet" via l'option --compare-dest
Dans la theorie ce serait :
Mais j'ai vue que --compare-dest ne permet pas de comparer avec une machine distant via ssh.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 rsync -avP --bwlimit="$debit" --delete -e "ssh" \ --compare-dest="$utilisateur"@"$ipNas":"$destinationBackupComplet" \ "/home/mathieu/backup/machines/" \ "$utilisateur"@"$ipNas":"$destinationBackupDif/$date"
Alors je crée un dossier temporaire où je transfert le backup complet pour qu'il soit accessible via la machine local ubuntu ("/home/mathieu/tmp_dif")
J'adapte la commande :
j’obtiens l'erreur "--compare-dest arg does not exist: /home/mathieu/tmp_dif" et tous les fichiers (aussi ceux qui ne sont pas modifié) sont sauvegarder dans /home/user-backup/dif-backup/dif/<date sauvegarde>/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 rsync -avP --bwlimit="$debit" --delete -e "ssh" \ --compare-dest="/home/mathieu/tmp_dif" \ "/home/mathieu/backup/machines/" \ "$utilisateur"@"$ipNas":"$destinationBackupDif/$date"
Cependant, quand je réadapte le code pour que le destination soit en local (exemple /home/mathieu/tmp_result/<date sauvegarde>). :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 rsync -avP --bwlimit="$debit" --delete -e "ssh" \ --compare-dest "/home/mathieu/tmp_dif" \ "/home/mathieu/backup/machines/" \ "/home/mathieu/tmp_result/$date"
Ça fini par fonctionner (j'ai créer un fichier "nouveau fichier" dans /home/mathieu/backup/machines)
Il y aurait une solution pour utiliser --compare-dest avec le serveur distant comme destination ?
Merci
Partager