Rsync et l'option -n

Résolu
zatox19 Messages postés 31 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

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

  1. manu
     

    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
    1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
       

      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
  2. zatox19 Messages postés 31 Statut Membre 1
     

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

    0