RSYNC en SSH et en CRON

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

sdamain
WRInaute passionné
WRInaute passionné
 
Messages: 1277
Inscription: 14 Oct 2003

RSYNC en SSH et en CRON

Message le Mer Avr 23, 2008 13:12

Bonjour à tous,

Dans le cadre de la migration d'un site sur un nouveau serveur dédié (chez Sivit), je souhaite utiliser Rsync pour synchroniser certains folders (contenant des fichiers uploadés par les utilisateurs du site) le temps que la propagation DNS du NDD soit terminée.

Je souhaite donc lancer une commande en CRON afin de synchroniser ces fichiers toutes les x minutes.
Je dois donc lancer la commande suivante depuis le serveur1 :
Code: Tout sélectionner
rsync -avz /home/web/.../ root@serveur2:/home/web/...


Problème : le mot de passe root du serveur2 m'est demandé.

J'ai d'abord essayé avec "-password-file" mais il semblerait que cette option ne fonctionne qu'avec le deamon de RSYNC.

Après quelques recherches sur Google, j'ai trouvé quelques procédures qui expliquent qu'il faut utiliser des clés pour pouvoir se passer du mot de passe.

J'ai donc fait ceci :
1. Connexion en SSH sur serveur2 + génération des clés pub et priv dans le répertoire /root/.ssh
2. Copie du contenu de la clé publique (id_rsa.pub) dans le fichier /root/.ssh/known_hosts du serveur1

Si je fais un simple teste de connexion
Code: Tout sélectionner
ssh root@serveur2
depuis serveur1, il me demande toujours d'entrer le mot de passe root de serveur2.

Je pense avoir oublié une étape, je n'ai probablement pas très bien saisi le principe.

Quelqu'un pourrait-il m'aider?

Merci.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2678
Inscription: 13 Fév 2004

Re: RSYNC en SSH et en CRON

Message le Mer Avr 23, 2008 13:39

sdamain a écrit:je souhaite utiliser Rsync pour synchroniser certains folders (contenant des fichiers uploadés par les utilisateurs du site)
[...]
Code: Tout sélectionner
rsync -avz /home/web/.../ root@serveur2:/home/web/...


Problème : le mot de passe root du serveur2 m'est demandé.


Question idiote: tous ces fichiers appartiennent à un seul et même utilisateur (au sens Unix), non? Pourquoi te connecter en root?

Jacques.

sdamain
WRInaute passionné
WRInaute passionné
 
Messages: 1277
Inscription: 14 Oct 2003

Message le Mer Avr 23, 2008 13:44

Oui ces fichiers appartiennent bien à un seul user système.
Je me connecte en Root pour avoir les droits nécessaires.

De toute façon, je pense que même si je me connecte avec un autre user, le problème restera le même, je devrai fournir un mot de passe pour pouvoir me connecter au serveur distant. Non?

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2678
Inscription: 13 Fév 2004

Message le Mer Avr 23, 2008 14:15

sdamain a écrit:Oui ces fichiers appartiennent bien à un seul user système.
Je me connecte en Root pour avoir les droits nécessaires.


Il serait plus logique de se connecter comme l'utilisateur correspondant.

sdamain a écrit:De toute façon, je pense que même si je me connecte avec un autre user, le problème restera le même, je devrai fournir un mot de passe pour pouvoir me connecter au serveur distant. Non?


Non, pas forcément, pour des raisons de sécurité le compte root est généralement traîté de façon différente, dans certains cas il est en fait impossible de se connecter directement en root (même si tu n'auras pas forcément de message explicite à ce sujet).

Le plus simple est d'utiliser le même user des deux côtés et ssh avec des clefs. Tu génères une paire de clefs (avec ssh-keygen), tu copies la clef publique (.ssh/id_rsa.pub) dans le fichier .ssh/authorized_keys de la machine de destination, et hop.

Jacques.

sdamain
WRInaute passionné
WRInaute passionné
 
Messages: 1277
Inscription: 14 Oct 2003

Message le Mer Avr 23, 2008 14:18

jcaron a écrit:Le plus simple est d'utiliser le même user des deux côtés et ssh avec des clefs. Tu génères une paire de clefs (avec ssh-keygen), tu copies la clef publique (.ssh/id_rsa.pub) dans le fichier .ssh/authorized_keys de la machine de destination, et hop.


Ok, je vais essayer cela.

Juste une question : quel(s) droit(s) dois-je donner à ce user (quel(s) groupe(s))?

Merci.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2678
Inscription: 13 Fév 2004

Message le Mer Avr 23, 2008 14:46

sdamain a écrit:Juste une question : quel(s) droit(s) dois-je donner à ce user (quel(s) groupe(s))?


Si tous les fichiers lui appartiennent, il n'a besoin d'être dans aucun groupe particulier... Tu devrais lui donner les mêmes droits que sur la machine initiale...

Jacques.


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1734
Inscription: 31 Aoû 2007

Message le Mer Avr 23, 2008 21:20

Bon, j'ai eu le même problème que toi au moment de la migration, mais j'ai trouvé une technique assez simple.

Upload de fichier : quand on arrive sur la page d'upload, un .htaccess nous redirige vers un champ A créé pour l'occasion www2.site.tld
==>Désactiver l'upload sur le vieux serveurs...

Download: les fichiers uploadés sont dans www.site.tld/uploads/ (exemple) faire un .htaccess sur les deux serveurs redirigeant là encore vers www2 (où là tu auras sync à la main au bon moment)

Pour rsync, il me semble sinon qu'il faille le lancer en daemon côté nouveau serveur pour ce que tu veux faire...

sdamain
WRInaute passionné
WRInaute passionné
 
Messages: 1277
Inscription: 14 Oct 2003

Message le Lun Avr 28, 2008 10:00

J'ai finalement pu m'en sortir avec cette commande, merci à vous.

J'ai une question supplémentaire.

J'utilise donc cette commande actuellement :
Code: Tout sélectionner
rsync -avz -e 'ssh' /home/web/original/www/images/ root@serveur:/home/web/destination/ftp/www/images


Le problème est que les fichiers et répertoires de destination se retrouvent avec un chmod n'ayant rien à avoir avec celles qui devraient être en place.

Est-il possible de stipuler (dans le commande rsync) que l'on souhaite conserver les permissions de la destination tout en conservant les options actuelles de la commande (notamment le -a car j'ai des sous répertoire à transéfer).

Merci.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités