|
|
|
|
||||||
| linux.debian.user.french Forum sur Linux Debian. Debian-user-french@lists.debian.org |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Salut la liste
![]() J'aimerai écrire un script qui me dit si tel process est démarré depuis plus de x minutes et le tuer. Pour un début j'ai pensé à un: ps -eo pid,comm,etime | grep "ma_commande" Mais ensuite, je bloque. Comment récupérer les lignes qui ont un temps supérieur à 5 minutes ? merci et a+ f. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Salut,
Je ne sais pas si c'est une belle solution, mas voilà. IFS=" " for a in `ps -eo pid,time ` do export PID_TO_KILL=$( echo $a | awk '{print $1}' ) R=$( echo $a | awk '{print $2}' ) echo $R | awk -F":" '{ H=$1*60 ; M=$2*1 ; S=$3/60 ; if ((H+M+S)>5) print ENVIRON["PID_TO_KILL"]" -" H+M+S}' done Le 18 Oct 2006 07:04:48 -0700, fabrice regnier <regnier.fab@free.fr> a écrit : > > Salut la liste ![]() > > J'aimerai écrire un script qui me dit si tel process est démarré > depuis plus de x minutes et le tuer. > Pour un début j'ai pensé à un: ps -eo pid,comm,etime | grep > "ma_commande" > Mais ensuite, je bloque. Comment récupérer les lignes qui ont un > temps supérieur à 5 minutes ? > > merci et a+ > > f. > > -- -- Paulo Genoíno http://dancaquebec.blogspot.com/ |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Salut,
Je ne sais pas si c'est une belle solution, mas voilà. IFS=" " for a in `ps -eo pid,time ` do export PID_TO_KILL=$( echo $a | awk '{print $1}' ) R=$( echo $a | awk '{print $2}' ) echo $R | awk -F":" '{ H=$1*60 ; M=$2*1 ; S=$3/60 ; if ((H+M+S)>5) print ENVIRON["PID_TO_KILL"]" -" H+M+S}' done Le 18 Oct 2006 07:04:48 -0700, fabrice regnier <regnier.fab@free.fr> a écrit : > > Salut la liste ![]() > > J'aimerai écrire un script qui me dit si tel process est démarré > depuis plus de x minutes et le tuer. > Pour un début j'ai pensé à un: ps -eo pid,comm,etime | grep > "ma_commande" > Mais ensuite, je bloque. Comment récupérer les lignes qui ont un > temps supérieur à 5 minutes ? > > merci et a+ > > f. > > -- -- Paulo Genoíno http://dancaquebec.blogspot.com/ |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Le mercredi 18 octobre 2006 à 07:04 -0700, fabrice regnier a écrit :
> Salut la liste ![]() > > J'aimerai écrire un script qui me dit si tel process est démarré > depuis plus de x minutes et le tuer. > Pour un début j'ai pensé à un: ps -eo pid,comm,etime | grep > "ma_commande" > Mais ensuite, je bloque. Comment récupérer les lignes qui ont un > temps supérieur à 5 minutes ? Allez juste pour le fun, un autre en Perl (en espérant qu'il ne contienne pas de bogues :-) ps -eo pid,comm,etime --no-headers |perl -ne '/in/ && s/\s*(\d+).*?((\d \d)-)?((\d\d) ?(\d\d):\d\d/kill(0,$1) && kill(0,$1) && print "KILLEDPROC: $_" if (($3*1440 + $5*60 + $6) >= x)/e' Remplacer le deuxième kill(0,$1) par kill(numéro-de-signal,$1) et le x final par le nombre de minutes (et ma-commande-qui-n_est-pas-entièrement-affiché bien sur). Greg PS: Tant qu'a utiliser du Perl autant faire le script en Perl... -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Le mercredi 18 octobre 2006 à 07:04 -0700, fabrice regnier a écrit :
> Salut la liste ![]() > > J'aimerai écrire un script qui me dit si tel process est démarré > depuis plus de x minutes et le tuer. > Pour un début j'ai pensé à un: ps -eo pid,comm,etime | grep > "ma_commande" > Mais ensuite, je bloque. Comment récupérer les lignes qui ont un > temps supérieur à 5 minutes ? Allez juste pour le fun, un autre en Perl (en espérant qu'il ne contienne pas de bogues :-) ps -eo pid,comm,etime --no-headers |perl -ne '/in/ && s/\s*(\d+).*?((\d \d)-)?((\d\d) ?(\d\d):\d\d/kill(0,$1) && kill(0,$1) && print "KILLEDPROC: $_" if (($3*1440 + $5*60 + $6) >= x)/e' Remplacer le deuxième kill(0,$1) par kill(numéro-de-signal,$1) et le x final par le nombre de minutes (et ma-commande-qui-n_est-pas-entièrement-affiché bien sur). Greg PS: Tant qu'a utiliser du Perl autant faire le script en Perl... -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Le mercredi 18 octobre 2006 à 22:11 +0200, Vanuxem Grégory a écrit :
> Le mercredi 18 octobre 2006 à 07:04 -0700, fabrice regnier a écrit : > > Salut la liste ![]() > > > > J'aimerai écrire un script qui me dit si tel process est démarré > > depuis plus de x minutes et le tuer. > > Pour un début j'ai pensé à un: ps -eo pid,comm,etime | grep > > "ma_commande" > > Mais ensuite, je bloque. Comment récupérer les lignes qui ont un > > temps supérieur à 5 minutes ? > > Allez juste pour le fun, un autre en Perl (en espérant qu'il ne > contienne pas de bogues :-) > > ps -eo pid,comm,etime --no-headers |perl -ne '/in/ && s/\s*(\d+).*?((\d > \d)-)?((\d\d) ?(\d\d):\d\d/kill(0,$1) && kill(0,$1) && print "KILLED> PROC: $_" if (($3*1440 + $5*60 + $6) >= x)/e' ps -eo pid,comm,etime --no-headers |perl -ne '/ma-commande-qui-n_est-pas-entièrement-affiché/ && s/\s*(\d+).*?((\d \d)-)?((\d\d) ?(\d\d):\d\d/kill(0,$1) && kill(0,$1) && print "KILLEDPROC: $_" if (($3*1440 + $5*60 + $6) >= x)/e' Comme ça c'est plus clair :-) Remplacer le deuxième kill(0,$1) par kill(numéro-de-signal,$1) et le x final par le nombre de minutes (et ma-commande-qui-n_est-pas-entièrement-affiché bien sur). Greg > > PS: Tant qu'a utiliser du Perl autant faire le script en Perl... -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Le mercredi 18 octobre 2006 à 22:11 +0200, Vanuxem Grégory a écrit :
> Le mercredi 18 octobre 2006 à 07:04 -0700, fabrice regnier a écrit : > > Salut la liste ![]() > > > > J'aimerai écrire un script qui me dit si tel process est démarré > > depuis plus de x minutes et le tuer. > > Pour un début j'ai pensé à un: ps -eo pid,comm,etime | grep > > "ma_commande" > > Mais ensuite, je bloque. Comment récupérer les lignes qui ont un > > temps supérieur à 5 minutes ? > > Allez juste pour le fun, un autre en Perl (en espérant qu'il ne > contienne pas de bogues :-) > > ps -eo pid,comm,etime --no-headers |perl -ne '/in/ && s/\s*(\d+).*?((\d > \d)-)?((\d\d) ?(\d\d):\d\d/kill(0,$1) && kill(0,$1) && print "KILLED> PROC: $_" if (($3*1440 + $5*60 + $6) >= x)/e' ps -eo pid,comm,etime --no-headers |perl -ne '/ma-commande-qui-n_est-pas-entièrement-affiché/ && s/\s*(\d+).*?((\d \d)-)?((\d\d) ?(\d\d):\d\d/kill(0,$1) && kill(0,$1) && print "KILLEDPROC: $_" if (($3*1440 + $5*60 + $6) >= x)/e' Comme ça c'est plus clair :-) Remplacer le deuxième kill(0,$1) par kill(numéro-de-signal,$1) et le x final par le nombre de minutes (et ma-commande-qui-n_est-pas-entièrement-affiché bien sur). Greg > > PS: Tant qu'a utiliser du Perl autant faire le script en Perl... -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org |
|
![]() |
| Outils de la discussion | |
|
|