Boucle cassée à cause d'un ssh [RESOLU] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 01-09-2008 à 14:39:39
bon et bien j'ai trouvé ...
ssh toto@monserveur -c "rm -f $SOURCE"
je ne sais pas pourquoi le -c fonctionne mais je n'ai pas le temps de m'attarder sur le problème en essayant de comprendre pourquoi sens ce -c ma boucle se casse...
Marsh Posté le 01-09-2008 à 14:56:19
bon autant pour moi. je ne sais pas ce que j'ai fait avec mes tests mais ça ne résout rien mon truc
Donc toujours le même problème !!!
Marsh Posté le 01-09-2008 à 16:33:33
bon cette fois ci ça marche.
ssh -n toto@monserveur rm -f $SOURCE
Le problème c'est que ssh bouffait l'entrée standard.
extrait du man de ssh :
-n Redirects stdin from /dev/null (actually, prevents reading from stdin). This must be used when ssh is run in the background. A common trick is to use this to run X11 programs on a remote machine. For example, ssh -n shadows.cs.hut.fi emacs & will start an emacs on shadows.cs.hut.fi, and the X11 connection will be automatically forwarded over an encrypted channel. The ssh program will be put in the background. (This does not work if ssh needs to ask for a password or passphrase; see also the -f option.)
Marsh Posté le 01-09-2008 à 14:18:52
Bonjour,
Je suis confronté au problème suivant :
voici un bout du code qui posse problème dans mon script :
function supprime_rapport {
req="update V8_CONTAINER set browsable=0, deleted=1 where container_UUID='$UUID'"
db2 $req > /dev/null
if [ $? -eq 0 ]
then
ssh toto@monserveur "rm -f $SOURCE"
fi
}
while read LIGNE
do
supprime_rapport
done < liste_fichiers_a_supprimer.txt
}
Le problème est que l'exécution de la commande ssh toto@monserveur "rm -f $SOURCE" fait que la boucle while se 'casse'.
Le code fonctionne car la première ligne de mon fichier liste_fichiers_a_supprimer.txt est traitée correctement et le fichier est bien supprimé sur le serveur distant.
Si je commente la ligne contenant le ssh, la boucle while traite tout mon fichier.
pour info : j'ai créé une paire de clé RSA afin de ne pas avoir à taper de mot de passe.
Donc pour résumer : pourquoi ma boucle while s'arrête elle au premier passage ?
merci
Message édité par jesusdebethune le 01-09-2008 à 16:33:48