#1 Le 03/04/2024, à 09: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
Hors ligne
#2 Le 03/04/2024, à 14: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.
En ligne
#3 Le 03/04/2024, à 15: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, à 15:20)
#4 Le 04/04/2024, à 11: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
Hors ligne