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 30/04/2019, à 10:51

DonutMan75

[RESOLU] rsync over ssh : options aux petits oignons ?

Bonjour à tous,
je potasse un peu la doc de rsync (voir ici ou la) et j'ai quelques questions.

J'ai un serveur ssh S et un poste client C.
Je souhaite obtenir un miroir du répertoire /totoS de S sur ma machine C (dans le répertoire /totoC).

Sur C, j'ai configuré ~/.ssh/config pour tout avoir sous le coude :

donut@C : cat ~/.ssh/config
Host mybackup
  Port 22
  IdentityFile /home/donut/clef_backup
  IdentitiesOnly yes
  User backuper
  HostName 192.168.0.10

De sorte que ssh mybackup, fonctionne nickel et me logge direct sur S.

Du coup, en tatonnant j'ai trouvé un rsync sur C qui  fonctionne :

rsync -av --delete-after -e "ssh mybackup" :/totoS/ /totoC

Je m'interroge sur la notation...
Notamment, d'après ma compréhension de la documentation, j'aurais bien tenté un :

rsync -av --delete-after -e "ssh mybackup" backuper@192.168.0.10:/totoS/ /totoC

Mais j'obtiens alors :

bash: 192.168.0.10 : commande introuvable

Savez-vous pourquoi ?
Quoiqu'il en soit, la commande qui marchouille vous parait-elle propre ??

Par ailleurs l'option -e pour spécifier un shell précis peut fonctionner autant côté SOURCE que côté DESTINATION non ? Comment distinguer les cas ???

Et pour terminer, la doc n'arrête pas de parler de "modules rsync" mais je ne sais pas ce que c'est... hmm

Merci d'avance pour vos retours smile

Donut

Dernière modification par DonutMan75 (Le 30/04/2019, à 13:50)

Hors ligne

#2 Le 30/04/2019, à 11:32

bruno

Re : [RESOLU] rsync over ssh : options aux petits oignons ?

"ssh mybackup" ne veut rien dire (cf man rsync pour l'argument -e), tu doit y mettre les éventuelles options de la commande ssh.
Exemple si tu dois préciser un numéro de port :

rsync -av  --delete-after --progress -e 'ssh -p 721' backuper@192.168.0.10:/totoS/ /totoC

#3 Le 30/04/2019, à 12:14

DonutMan75

Re : [RESOLU] rsync over ssh : options aux petits oignons ?

Hello bruno,
merci pour ton retour (et pour ton aide en générale concernant mes diverses questions concernant mon projet !!)

Mais je pense que ssh connaît mybackup tel que défini dans ~/.ssh/config.
Le man de rsync dit d'ailleurs :

man rsync a écrit :

-e, --rsh=COMMANDE
Cette option vous permet de choisir un shell distant alternatif pour la communication entre les copies locales et distantes de rsync. Par défaut, rsync va utiliser ssh, mais vous pouvez apprécier l'utilisation de rsh dans un réseau local.
Si cette option est utilisée en conjonction de [util@]hote::module/chemin, alors le shell distant COMMANDE sera utilisé pour lancer un démon rsync sur la machine hôte, et toutes les données seront transmises via la connexion à ce shell distant plutôt que directement via une connexion socket avec le démon rsync de l'hôte distant. Reportez-vous à la section «UTILISER LES FONCTIONNALITÉS D'UN DÉMON RSYNC VIA UNE CONNEXION SHELL DISTANT» ci-dessus pour plus d'information.
Il est possible d'ajouter des arguments à COMMANDE, il suffit de faire en sorte que COMMANDE soit présentée comme un seul argument à rsync. Par exemple :
-e "ssh -p 2234"
(Notez que les utilisateurs de ssh peuvent aussi personnaliser en fonction du site les options de connexion à l'aide du fichier .ssh/config.)
Vous pouvez aussi choisir le shell distant en utilisant la variable d'environnement RSYNC_RSH, qui accepte les mêmes valeurs que -e.
Voir aussi l'option --blocking-io qui est affectée par cette option.

Ce qui est curieux, c'est que ces commandes marchent :

rsync -av  --delete-after --progress -e 'ssh -p 22' backuper@192.168.0.10:/totoS/ /totoC
rsync -av  --delete-after --progress -e 'ssh mybackup' :/totoS/ /totoC
rsync -av  --delete-after --progress -e 'ssh - "Hostname=192.168.0.10" -o "User=backuper" -o "Port=22" -o "IdentityFile=/home/donut/clef_backup" -o "IdentitiesOnly=yes"' backuper@192.168.0.10:/totoS/ /totoC

Typiquement, la dernière commande reprend dans les -o les différentes options définies dans ~/.ssh/config

Mais pas celle là :

$ rsync -n -av --delete-after -e 'ssh mybackup' backuper@192.168.0.10:/totoS /totoC
bash: 192.168.0.10 : commande introuvable
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: remote command not found (code 127) at io.c(235) [Receiver=3.1.2]

L'ajour de l'option -v de ssh permet de voir que ce qui est passé à bash dans ce dernier cas est incorrect

$ rsync -n -av --delete-after -e 'ssh -v mybackup' backuper@192.168.0.10:/totoS /totoC
(...)
debug1: Sending command: 192.168.0.10 rsync --server --sender -vnlogDtpre.LsfxC . /totoS
bash: 192.168.0.10 : commande introuvable
(...)

Alors que :

$ rsync -n -av --delete-after -e 'ssh -v mybackup' :/totoS /totoC
(...)
debug1: Sending command:  rsync --server --sender -vnlogDtpre.LsfxC . /totoS
receiving file list ... done
totoS/
totoS/a
totoS/b
totoS/c

sent 35 bytes  received 106 bytes  94.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

Bien mystérieux tout ça... Apparemment, il parse différemment la source USER@HOST:/PATH/ selon le contexte...

Donut

Dernière modification par DonutMan75 (Le 30/04/2019, à 12:17)

Hors ligne

#4 Le 30/04/2019, à 12:31

bruno

Re : [RESOLU] rsync over ssh : options aux petits oignons ?

Cela n'a rien de mystérieux. Ta commande 'mybackup' est inconnue du serveur SSH : elle n'existe que sur le poste client.

#5 Le 30/04/2019, à 12:50

krodelabestiole

Re : [RESOLU] rsync over ssh : options aux petits oignons ?

DonutMan75 a écrit :

Du coup, en tatonnant j'ai trouvé un rsync sur C qui  fonctionne :

rsync -av --delete-after -e "ssh mybackup" :/totoS/ /totoC

plus simplement :

rsync -av --delete-after mybackup:/totoS/ /totoC

mybackup c'est le nouveau nom d'hôte tel que spécifié dans la config client ssh ~/.ssh/config , et tu devrais pas avoir besoin des autres paramètres qui y sont aussi spécifiés.
donc pas besoin de -e "ssh blabla...

En ligne

#6 Le 30/04/2019, à 13:02

DonutMan75

Re : [RESOLU] rsync over ssh : options aux petits oignons ?

Hello krodelabestiole,
super cette commande marche nickel !!!

En fait si je comprends bien, l'argument passé à -e indique juste quelles options passer à ssh pour se connecter à l'hôte distant. Donc mettre -e 'ssh mybackup' est un peu redondant car on définit deux fois USER@HOST du coup...

Merci beaucoup !

Donut

PS :
quelques liens en relation avec le sujet (et sur lesquels je suis tombé en farfouillant sur le net), ça pourra éventuellement servir :
https://unix.stackexchange.com/question … -not-found
https://unix.stackexchange.com/question … r-by-rsync

Hors ligne

#7 Le 30/04/2019, à 13:24

krodelabestiole

Re : [RESOLU] rsync over ssh : options aux petits oignons ?

c'est plus ou moins ça. -e (--rsh) te permet de specifier le "remote shell" à utiliser. ici SSH (par défaut). au passage ça permet de spécifier des paramètres qui ne sont pas ceux par défaut (en général un port différent).

éventuellement on peut aussi utiliser RSH au lieu de SSH, mais on n'utilise plus du tout ça c'est pas sécurisé : https://fr.wikipedia.org/wiki/Rsh

En ligne