Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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