Pages : 1
#1 Le 24/11/2009, à 17:16
- boutor
Détection de Jobs sur un ensemble de machine
Bonjour,
Je fais un petit script qui se connecte à des noeuds de calculs et liste les jobs en cours pour une personne donnée.
Mais mon script ne parcourt pas toute la liste (node1 node2 etc ) du foreach.
#!/bin/csh
set me=`whoami`
set awk=`which gawk`
set date=`date`
set fic='tmp.txt'
if ( -e $fic ) then
echo " >> Deleting $fic. "
rm $fic
endif
echo " "
echo " *************************** "
echo " Jobs state on $date. "
echo " *************************** "
echo " "
set NODES="node1 node2"
echo " >> Sending request to every nodes."
# Boucle sur tous les noeuds
foreach target ( node1 node2 )
echo " " >> "$fic"
echo " ***************************** " >> "$fic"
echo " On node $target my jobs are : " >> "$fic"
echo " " >> "$fic"
echo " Job Id date Name" >> "$fic"
# conection au noeud
ssh $target << __END__
# On ecrit dans $fic la liste des jobs actifs
ps -elf | grep $me | grep -v ssh | grep -v gawk | grep -v ps | grep -v bash | $awk '{ printf("%10d %s %s %s\n", \$4, \$12, \$15, \$16) }' >> "$fic"
# quitte le ssh
exit
__END__
echo " " >> "$fic"
end
# On affiche le fichier $fic et l'efface
sleep 3
echo " >> Showing Current Jobs."
cat $fic
rm $fic
echo " >> END."
Le script va bien sur le node1 et s'arrête après l'écriture dans $fic.
Merci pour toute piste.
Hors ligne