Rsync et l'option -n

Résolu/Fermé
zatox19 Messages postés 24 Date d'inscription samedi 24 septembre 2022 Statut Membre Dernière intervention 5 novembre 2023 - Modifié le 27 mars 2023 à 17:23
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 27 mars 2023 à 17:30

Bonjour,

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.

1
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
Modifié le 27 mars 2023 à 17:30

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

0
zatox19 Messages postés 24 Date d'inscription samedi 24 septembre 2022 Statut Membre Dernière intervention 5 novembre 2023
25 mars 2023 à 00:41

Bonsoir, merci pour votre réponse, effectivement avec -e juste avant la commande ça marche. Merci beaucoup, bonne soirée.

0