2015-12-22 3 views
0

J'ai un script bash qui surveille certaines statistiques du système.Lanch et kill script monitor via ssh

J'ai besoin d'exécuter le script sur plusieurs machines, toutes en même temps.

Je voudrais lancer le script sur toute la machine et quand l'opération que je veux surveiller est terminée, j'ai besoin d'arrêter la journalisation.

Pour lancer le script, je peux utiliser ssh, mais je n'ai aucune idée de comment l'arrêter.

+0

si certaine condition est remplie pourquoi pas vous quelque chose comme '' kill -9 $$ à l'intérieur vous script? – sjsam

+0

vous pouvez vider le pid dans un fichier 'echo $!> Xyz.pid' depuis votre script lancé. puis utilisez plus tard la machine 'ssh -q" cat xyz.pid | xargs kill "' –

Répondre

0

Vous pouvez faire quelque chose comme ceci:

#!/bin/bash 
while [ ! -z $(pidof process_name_you_wish_to_monitor) ] 
do 
#do what you wish to do here or wait certain number of seconds. 
#I would better wait as I have nothing to do ;) 
sleep 10s 
done 

Modifier

j'avais d'abord kill -9 $$ à la fin du script, mais enlevé comme il est redondant. Le processus se terminera gracieusement de toute façon. N'est-ce pas?

1

Si vous voulez tuer le script ne connaissant que son nom vous pouvez essayer:

kill -9 `ps -e | grep NAME_OF_SCRIPT | cut -d ' ' -f 3`