[ RSYNC ]-problèmes transfert à distance

Fermé
toto - 9 févr. 2010 à 14:30
 toto - 11 févr. 2010 à 09:07
Bonjour,
Je suis actuellement en stage j'ai un pc sous linux. Je me connecte en ssh sur le serveur central (pour le moment, aucuns problèmes) et je dois effectuer un premier test de transfert rsync à distance vers un serveur externe et voici le script :

#!/bin/bash
date=`date`
cd /home
touch test.txt

ssh <ip_srv_externe>
cd /home
if [ ! -e "test.txt" ]; then
rsync -rupgoz -e ssh /chemin_source/test.txt <ip_srv_externe>:/chemin_destination/
echo "$date" >> test.txt
else
echo "$date" >> test.txt
fi

Ce script est créé sur le serveur central
Ce qui reviendrai à dire qu'on va dans le répertoire home du serveur central, qu'on y crée un fichier test.txt puis que l'on se connecte sur le serveur externe pour tester la connexion, si elle marche, un autre test est déclenché. si le fichier test.txt n'existe pas dans /home du serveur externe, il y est créé et on y insère la date et l'heure actuelle. Sinon c'est qu'il est déjà créé et on y insère juste la date et l'heure.
Sauf que au moment de la connexion, le script s'arrête, donc le transfert ne s'effectue pas

Je suis un peu paumé, quelqu'un pourrait-il m'aider à résoudre ce petit problème afin que la condition s'éxécute ?

Merci d'avance

Si vous avez besoin d'un quelconque renseignement, j'en ferai volontier part
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
9 févr. 2010 à 14:36
Salut,

Sauf que au moment de la connexion, le script s'arrête, donc le transfert ne s'effectue pas
C'est à dire ???
A la connexion du ssh (ssh <ip_srv_externe> ) ou du transfert via rsync ?
0
au moment de la connexion ssh, je me retrouve donc sur l'autre serveur et je pense qu'après le test de transfert rsync de la condition 'if ... fi' ne s'éxécute pas

Si jamais tu n'es pas d'accord avec le déroulement de mon script, prévient moi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
9 févr. 2010 à 15:46
Essaie comme ça :

#!/bin/bash
date=`date`
cd /home
touch test.txt

ssh <ip_srv_externe> [ -e "/home/test.txt" ]
retval=$?
if [ "$retval" = 1 ]
then
rsync -rupgoz -e ssh /chemin_source/test.txt <ip_srv_externe>:/chemin_destination/
echo "$date" >> test.txt
else
echo "$date" >> test.txt
fi 


Attention : Les "echo $date >> test.txt" seront exécutés sur le serveur.
0
a l'éxécution du script, il m'indique :

"rsync: link_stat "/home/test.txt" failed: No such file or directory (2)
rsync error: some files could not be transfered (code 23) at main.c(1385) [receiver=2.6.9]"
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895 > toto
9 févr. 2010 à 16:23
T'es sûr du répertoire "/home" ? Attention ça n'a rien à voir avec "$HOME" ;-\
0
toto > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
9 févr. 2010 à 16:29
oui j'en suis sûr parce que quand je suis sur le serveur central et que je veux accéder à 'home'
je fais cd /home
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895 > toto
9 févr. 2010 à 16:33
Oui ça je suis d'accord, mais le répertoire "/home" (répertoire où se trouve les /homes de chaque utilisateur) n'a rien à voir avec le répertoire "$HOME" (le répertoire perso correspondant au nom de login).

Donc tu as les droits nécessaires sur ce répertoire (/home) ?
0
toto > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
10 févr. 2010 à 08:52
Désolé du retart, oui oui j'ai tous les droits
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
10 févr. 2010 à 10:40
"rsync: link_stat "/home/test.txt" failed: No such file or directory (2)
T'es sûr du chemin ?
0
oui j'en suis sûr, j'ai été vérifié sur le serveur distant, j'ai fait un test avec la copie via la commande scp et ça marche
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895 > toto
10 févr. 2010 à 17:12
Rajoutes "-vv" aux options de rsync afin de le rendre plus verbeux...
0
toto > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
11 févr. 2010 à 09:07
J'ai changé la méthode depuis hier, pour tester la connexion d'une façon plus simple (pour moi) je crée un fichier sur le serveur central puis je le copie sur le serveur distant via scp.
Sur le serveur distant, j'ajoute une ligne dans la crontab qui va effectuer une incrémentation de la valeur d'une variable date dans ce fichié copié, toutes les heures.
Puis sur le serveur central, j'ajoute une commande rsync à mon script qui va prendre le contenu du fichier copié du serveur distant jusqu'au serveur central.

Si les modification ont bien été rapportées alors la connexion est possible sinon c'est que le serveur est injoignable ...

Bonne idée non ?
0