Recuperer le code retour d'un cksum distant

Recuperer le code retour d'un cksum distant - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 18-08-2008 à 11:31:30    

Bonjour,
 
Sur une machine distante distante, je fais un checksum d'un repertoire que je sauvegarde dans un fichier.  
 
J'aimerais tester le code retour de la connexion SSH pour s'avoir si au moins la connexion SSH s'est bien établie.  
Je pense que c'est l'un des tests de base à faire dans un script.
 
Mais le souci, je ne sais pas comment récuperer uniquement le code retour de ssh :

Code :
  1. listSourceFile=$( /usr/bin/ssh prod@machinE cksum ${baseSource}${userSource}'/exec/'${service}'/*' | awk '{ print $1";"$3 }')
  2. echo "Retour2 = "$?


le hostanme n'est pas correct et bien sur cela me retourne 0.  
 
En faisant un :  

Code :
  1. [ /usr/bin/ssh prod@machinE -eq 0 ] && listSourceFile=$( cksum ${baseSource}${userSource}'/exec/'${service}'/*' | awk '{ print $1";"$3 }')


cela ne fonctionnera naturellement pas car on fera un checksum local.  
 
 
La seul chose que je vois est de faire 2 connexions ssh à la suite.  

Code :
  1. [ /usr/bin/ssh prod@machinE -eq 0 ] && listSourceFile=$( /usr/bin/ssh prod@machinE cksum ${baseSource}${userSource}'/exec/'${service}'/*' | awk '{ print $1";"$3 }')


mais je trouve cela vraiment pas propre.
 
 
Comment faire ?

Reply

Marsh Posté le 18-08-2008 à 11:31:30   

Reply

Marsh Posté le 25-08-2008 à 11:38:16    

Là tu récupère le code de retour de awk (dernière commande exécutée), pas du ssh. Une solution serait de faire le awk sur l'hôte distant, en l'intégrant dans la commande ssh.

Reply

Marsh Posté le 01-09-2008 à 15:22:27    

matafan a écrit :

Là tu récupère le code de retour de awk (dernière commande exécutée), pas du ssh.


 
Oula je pensais pas avoir une réponse. Désolé pour ne avoir signe de vie plus tot.
Ok, on recupére le code retour de la dernière commande.  
 

matafan a écrit :

Une solution serait de faire le awk sur l'hôte distant, en l'intégrant dans la commande ssh.


Tu veux dire que la awk se lance directement sur la machine (via un crontab par exemple) et apres on récupére le résultat par ssh.  
C'est cela que tu voulais dire ?

Reply

Marsh Posté le 01-09-2008 à 22:02:29    

Oui, ça fait un truc du genre (note les double quotes) :

listSourceFile=$( /usr/bin/ssh prod@machinE "cksum ${baseSource}${userSource}'/exec/'${service}'/*' | awk '{ print $1\";\"$3 }'" )


Ou bien si tu préfères (note le backslash devant de pipe) :

listSourceFile=$( /usr/bin/ssh prod@machinE cksum ${baseSource}${userSource}'/exec/'${service}'/*' \| awk '{ print $1";"$3 }')

Reply

Sujets relatifs:

Leave a Replay

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