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 :
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"
Jusque là tout vas bien

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 :
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"
Mais j'ai vue que --compare-dest ne permet pas de comparer avec une machine distant via ssh.
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 :
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"
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>/

Nom : Screenshot_10.jpg
Affichages : 37
Taille : 309,5 Ko


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)

Nom : Screenshot_12.jpg
Affichages : 32
Taille : 126,3 Ko

Il y aurait une solution pour utiliser --compare-dest avec le serveur distant comme destination ?
Merci