[RESOLU]Boucle cassée à cause d'un ssh

Boucle cassée à cause d'un ssh [RESOLU] - Codes et scripts - Linux et OS Alternatifs

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 ?
 
 :hello: merci


Message édité par jesusdebethune le 01-09-2008 à 16:33:48
Reply

Marsh Posté le 01-09-2008 à 14:18:52   

Reply

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...  :pt1cable:  
 
 
 :bounce:  :bounce:  :bounce:

Reply

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 !!!

Reply

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.)
 
 :lol:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed