Salut tout le monde
Après mon problème avec sed, je suis de retour avec rsh. Voilà, en fait, j'essaye d'executer une commande précise (un ls) via rsh sur plusieurs serveurs. Je précise que je peux pas le faire via ssh malheureusement.
Bref, j'essaie donc d'exécuter la chose mais il m'execute que le serveur situé sur la premiere ligne. Je comprends pas pourquoi, pourtant si je fais la meme chose avec rcp, ça marche.
Je vous poste mon code
Code :
- rep_actu=`pwd`
- FICHIER_CONFIG="$rep_actu/liste-serveur.txt"
- FICHIER_TMP="$rep_actu/tmp-ftp"
- SERV_OK="$rep_actu/serv-ok.txt"
- EXE_OK="$rep_actu/exe-ok.txt"
- rm -f $EXE_OK
- touch $EXE_OK
- #Verification de la présence du fichier de configuration
- if [ ! -f $SERV_OK ]
- then
- echo "Fichier de configuration introuvable, arret du script"
- exit 1
- fi
- cd /home/admin01
- cat "$SERV_OK" | while read i
- do
- if [ -z "$i" ]
- then
- continue
- fi
- #Variable contenant le serveur distant
- nom_serveur=`echo "$i" | awk '{ print $1 }'`
- echo "**** Exécution de check-ogd sur $nom_serveur ****"
- rsh $nom_serveur ls
- done
- echo "fin boucle"
- exit 0
|
Donc là, il va me faire le ls uniquement sur le serveur désigné par la première ligne du fichier de configuration. En fait, il lit la première ligne et il sort de la boucle (alors qu'il y a plusieurs lignes). Et quand je remplace la commande rsh $nom_serveur ls par echo $i, cette fois ci il me sort sur la sortie standard TOUTES les lignes du fichier.
Je précise que je suis sous aix et que je tourne sous du korn shell. Donc si vous avez des explications, je suis preneur...
Merci d'avance.