[shell] ssh et rsync [Résolu/Fermé]

Signaler
Messages postés
394
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
31 janvier 2013
-
Messages postés
394
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
31 janvier 2013
-
Bonjour,

voila plusieurs mois que je travail sur un serveur de sauvegarde et de partage avec automatisation générale.

Je vous présente brèvement l'existant : toutes les machines sont sous Fedora 11
1 serveur Maitre
10 serveurs adjacents.

Le principe et de dupliquer des données du serveur maitre vers les serveurs adjacents.

J'ai réussi a le faire grâce à SSH et RSYNC :
ssh root@10.190.0.10
rsync -avz linux-A38@10.190.0.10::clamav ~/clamav/ --password-file=/home/linux-A38/.rsync_pass

J'ai mis ces 2 commandes dans un script : rsync_A38.sh
j'ai éditer le crontab pour éxcuter ce script à des horaires précises, le but étant de dupliquer sur différents horaires pour les 10 serveurs afin de ne pas surcharger le réseau. Le problème de ce script et qu'il s'éxécute trop bien, en fait il se connecte en root sur la machine 10.190.0.10 (grâce à des clé publique, ...) mais ne lance pas la seconde partie du script.
Je ne sais pas si c'est clair ^^'

J'aimerais que le script lance le ssh root[...] et qu'une fois sur la machine adjacentes il éxécute le rsync...

merci d'avance.

Cordialement

6 réponses

Bonjour,
Je pense avoir bien compris ton problème;

En faisant un 'man ssh', tu verras que la syntaxe est "ssh [options diverses] [commande]".
Ce qui signifie que la commande a exécuter sur la machine distante est à placer à la fin des paramètres de la commande ssh; et entre quotes s'il te plait (pour que celà ne compte que comme un seul argument).

Ce qui ne te donnera qu'une seule commande, sur une seule ligne :
ssh root@10.190.0.10 'rsync -avz linux-A38@10.190.0.10::clamav ~/clamav/ --password-file=/home/linux-A38/.rsync_pass'

C'est OK maintenant ?

Cordialement,
MC
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56874 internautes nous ont dit merci ce mois-ci

Messages postés
394
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
31 janvier 2013
46
C'est parfait !!!
Merci beaucoup pour la rapiditié et la qualité de la réponse ;)

Mon problème est que j'avais essayé en mettant après ssh mais sans les quotes ... -_-'

Merci encore ;)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4 754
Salut,

Un truc me turlupine ;-\

Pourquoi emploies-tu cette syntaxe (les deux points) :

rsync -avz linux-A38@10.190.0.10::clamav ~/clamav/ 

Cela laisse supposer que tu utilises un serveur "rsync", exact ?
Messages postés
394
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
31 janvier 2013
46
en fait j'ai lu un tuto : http://prendreuncafe.com/blog/post/2007/01/18/Synchro-distante-automatique-via-un-daemon-rsync-sur-Ubuntu

le fait d'utiliser les deux points permet l'utilisation d'un dossier partagé.
J'ai suivi le tuto qui correspondait bien a ce que je désirais, après je ne sais pas s'il y a mieux (surement ^^')
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4 754
Ben si tu utilises un serveur rsync, le ssh n'est plus nécessaire de ce fait ;-\
Messages postés
394
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
31 janvier 2013
46
en fait le fait d'utiliser ssh évite (grace au clé publique/privée) de ne demander aucun mot de passe, avant avec rsync seulement il fallait une intervention humaine ... c'est le seul moyen que j'ai trouvé pour pouvoir effectuer la commande...
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4 754
Alors pourquoi mets-tu "--password-file=/home/linux-A38/.rsync_pass" (syntaxe propre au serveur rsync) à la fin de ta commande puisque ssh est sensé t'authentifier ?

En fait la commande "ssh" ne te sert à rien dans ton cas ;-(
Messages postés
394
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
31 janvier 2013
46
en fait la syntaxe de mon message n'était pas bon, je vais réexpliquer ^^'
Pour faire simple, j'ai 2 PC pour le moment : PC1(qui contient les données à synchro) & PC2(qui recevra les données)
PC1 : grâce a crontab il exécute un script : ssh root@10.190.0.10 '/home/linux-A38A/rsync-dsf.sh' ce script demande au PC2 d'éxécuter un second script
PC 2 exécute un script : rsync -avz linux-A38@10.190.0.10::clamav ~/clamav/ --password-file=/home/linux-A38/.rsync_pass
PC 3 : envoi les données

C'est assez complexe, mais c'est une facon pour que sa soit le PC1 qui exécute à horaires précises et non pas les PC adjacents