Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/04/2024, à 10:26

ghost54770

(RSYNC) Comment utiliser un chemin distant (ssh) avec un argument ?

Bonjour
J'essaie de faire un scripte qui transfert des fichiers a un serveur distant (via ssh)
Pour le transfert d'un fichier local vers le serveur distant, c'est nickel ca marche bien.
exemple :

sync -avP -e "ssh" --log-file=/home/mathieu/logrsync.log "/home/mathieu/backup/machines/" user-backup@192.168.0.101:"/home/user-backup/dif_backup/backup"

Mais quand j'utilise --partial-dir (pour recuperer les fichiers incomplets que je simule avec un ctrl-c pendant le transfert) cela ce complique quand j'utilise un chemin d'accès distant sur la destination où sur l'argument --partial-dir
exemple avec :

rsync -avP -e "ssh" --log-file=/home/mathieu/logrsync.log --partial-dir=user-backup@192.168.0.101:"/home/user-backup/dif_backup/partial" "/home/mathieu/backup/machines/" user-backup@192.168.0.101:"/home/user-backup/dif_backup/backup"

Mon fichier incomplet n'apparait ni sur le serveur distant, ni sur la machine local alors que -P (--partial et --progress) est renseigné. Par contre il apparait si je n'utilise pas --partial-dir (il se met dans le chemin de destination).

autre exemple (--partial-dir avec un chemin local):

rsync -avP -e "ssh" --log-file=/home/mathieu/logrsync.log --partial-dir="/home/mathieu/Bureau/partial" "/home/mathieu/backup/machines/" user-backup@192.168.0.101:"/home/user-backup/dif_backup/backup"

Mon fichier incomplet n'apparait pas dans "/home/mathieu/Bureau/partial"

Par contre si je remplace la destination par un chemin local :

rsync -avP -e "ssh" --log-file=/home/mathieu/logrsync.log --partial-dir="/home/mathieu/Bureau/partial" "/home/mathieu/backup/machines/" "/home/mathieu/Bureau/backup"

Mon fichier incomplet apparait bien dans "/home/mathieu/Bureau/backup"

Quelqu'un aurait une solution, pour récupérer le fichiers incomplet pendant un transfert vers un serveur distant ?
Bonne journée smile

Hors ligne

#2 Le 03/04/2024, à 15:45

inbox

Re : (RSYNC) Comment utiliser un chemin distant (ssh) avec un argument ?

Salut,

La sauvegarde de fichiers incomplets n'a aucun intérêt. Au mieux, tu peux essayer de récupérer la liste des fichiers non sauvegardés, pour les sauvegarder plus tard.

A+


Un problème résolu ? Indiquez le en modifiant le titre du sujet.

Hors ligne

#3 Le 03/04/2024, à 16:14

bruno

Re : (RSYNC) Comment utiliser un chemin distant (ssh) avec un argument ?

Bonjour,

Je pense que ta ligne de commande n'est pas tout à fait correcte, il faudrait :

rsync -avP --log-file=/home/mathieu/logrsync.log --partial-dir="../partial" "/home/mathieu/backup/machines/" user-backup@192.168.0.101:"/home/user-backup/dif_backup/backup"

Explication : -e "ssh" est ici inutile et surtout il est préférable d'utiliser partial-dir avec un chemin relatif (cf. man rsync)

Dans cet exemple ../partial correspond à /home/user-backup/dif_backup/partial

P.S. : la conservation des fichiers partiels est au contraire extrêmement utile et peut faire gagner énormément de temps en cas de souci de transfert.

Dernière modification par bruno (Le 03/04/2024, à 16:20)

Hors ligne

#4 Le 04/04/2024, à 12:52

ghost54770

Re : (RSYNC) Comment utiliser un chemin distant (ssh) avec un argument ?

Je suis d'accord avec Bruno, j'utilise --partial pour conserver les fichiers incomplets (je ne l'ai pas précisé dans la question). Et j'ai vue que -e "ssh" est surtout utile pour modifier le port ssh.

La solution de bruno est bonne ! J'ai bien les fichiers incomplet qui sont crée dans ../partial sur le serveur distant.
J'ai remarquer que --partial-dir est lié que à la destination (j'ai pas l'impression d'avoir vue ça dans la doc rsync).
C'est pour cela que je ne peut pas indiquer un chemin local à ma machine dans --partial-dir, car il n'existe pas dans le serveur distant.
Et donc c'est inutile d'utiliser ssh dans --partial-dir si je l'utilise dans la destination.

Merci encore big_smile

Hors ligne