Rsync et l'option -n
RésoluBonjour,
Pour faire mes sauvegardes j'utilise rsync d'abord avec l'option -n, qui me permet de savoir ce que va faire rsync avant de faire la sauvegarde. Ensuite, en enlevant l'option -n, rsync exécute la sauvegarde. Ceci marche très bien pour des sauvegardes locales.
Pour des sauvegardes sur serveur distant l'option -n de rsync ne marche pas.
Sauvegarde en local :
rsync -arvzn --progress --delete /home-source/user/Documents/ /home-destination/user/ Documents/
... ça marche l'option -n me donne bien les modifications qui seront faites quand je vais enlever l'option -n.
Sauvegarde sur serveur distant :
rsync -arven "ssh -i /root/.ssh/id_rsa" --progress --delete /home-source/user/Documents/ user@ip:/home-destination/user/Documents/
donne l'erreur suivante:
rsync: [sender] Failed to exec n: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(85) [sender=3.2.2]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in IPC code (code 14) at io.c(226) [sender=3.2.2]
Apparemment, rsync ne supporte pas l'option -n dans le cas d'un serveur distant. D'ailleurs si j'enlève l'option -n il fait bien le boulot.
Existe-t-il une option particulière équivalente à l'option -n pour un serveur distant ?
Merci pour vos réponses.
2 réponses
-
Bonjour,
L'option -e nécessite comme argument la commande à exécuter (ssh dans votre cas). Changez l'ordre des options pour que le -e soit la dernière avant la commande.
-
Juste pour préciser ce qui a été dit, en shell :
- on peut agréger des noms noms courts d'option : par exemple
-a -r -v -n
équivaut à :-arvn
- une option peut être non paramétrée (par exemple -n pour rsync) ou paramétrée (par exemple -e pour rsync).
- Quand une option est paramétré, son paramètre doit apparaître immédiatement l'option.
- Par exemple, ici "ssh -i /root/.ssh/id_rsa" est le paramètre de -e, il faut donc qu'il figure immédiatement après -e :
rsync -arvn -e "ssh -i /root/.ssh/id_rsa" ...
... qu'on peut éventuellement agréger :rsync -arvne "ssh -i /root/.ssh/id_rsa" ...
Bonne chance
- on peut agréger des noms noms courts d'option : par exemple
-
-
Bonsoir, merci pour votre réponse, effectivement avec -e juste avant la commande ça marche. Merci beaucoup, bonne soirée.