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 02/01/2008, à 15:33

iuchiban

[Plus Résolu en fait :/. Ah Si! :D] Script de killer

Bonjour tout le monde.

Tout d'abord, bonne année geekesque pleine de trolls velus, de geekeries, de tuning ubuntesque et d'autres choses.

Ensuite, j'aurais un script à  faire :
- sortir une liste de process correspondant à  des critères,
- si cette liste est vide, ne rien faire
- sinon, killer les process de la liste

en gros, pour le moment ca donne :

if ($(ps - fu <USER> | grep <Condition> | grep - v grep | wc -l) eq "0")
then
echo "Rien a Killer"
else
echo "Killer le resultat de $(ps - fu <USER> | grep <Condition> | grep - v grep | awk '{print $1}')
fi

Sauf que le resultat de la condition est bizarre. En fait, le wc -l donne bien le résultat mais affiche une tabulation devant je crois.
Je pense qu'il y a moyen de faire plus simple (notamment en mettant if (kill blablabla)), mais mes cours de scripting sont loin.

Merci à  tous ceux qui passeront par là  pour apporter leur pierre à  l'édifice.

Dernière modification par iuchiban (Le 03/01/2008, à 16:20)


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#2 Le 02/01/2008, à 16:22

freebird

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

Salut,

Attention aux emplacements de tes espaces dans tes lignes de commandes. Je n'ai pas essayé mais j'aurai écrit ton contrà´le de la manière suivante :

if [ $(ps -fu <USER> | grep <Condition> | grep -v grep | wc -l | gawk '{ print $1 }') -eq 0 ]
then
echo "Rien a Killer"
else
echo "Killer le resultat de $(ps - fu <USER> | grep <Condition> | grep -v grep | gawk '{print $1}')"
fi

Dernière modification par freebird (Le 02/01/2008, à 17:03)

Hors ligne

#3 Le 02/01/2008, à 16:58

Yannick_LM

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

Tu sais, tu n'as ad absolument pas besoin de faire un ( grep | wc -l eq 0).
grep lui même s'occupe de tout.
(le code de sortie est 0 s'il a trouvé quelque chose, 1 sinon)
Donc, tu peux simplifier en :

if [ $(ps - fu <USER> | grep <Condition> | grep -v grep ]

Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne

#4 Le 02/01/2008, à 17:03

freebird

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

En effet, mais j'ajouterai qu'à moins de vouloir que tout s'affiche à l'écran l'ajout d'une redirection vers /dev/null serait utile.

if [ $(ps -fu <USER> | grep <Condition> | grep -v grep >/dev/null ) ]

Hors ligne

#5 Le 02/01/2008, à 17:29

iuchiban

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

Effectivement, les subtilités, en même temps que la puissance du shell me feront découvrir tous les jours des choses.

Je pense qu'avec ça je devrais pouvoir m'en sortir :

if [ $(ps -fu <USER> | awk '{print $2}' | grep <CONDITION> | grep -v grep) ]
then
  echo "Trouve!!!!"
  ps -fu <USER> | awk '{print $2}' | grep <CONDITION> | grep -v grep
fi

Merci à  vous deux.


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#6 Le 03/01/2008, à 15:50

iuchiban

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

Bon ben me revoila.

Alors en fait j'ai un soucis avec mon script que voila :

if [ $(ps -fu boe2 | grep enterprise115 | grep -v grep) ]
then
echo "Il y a des process qui tournent"
else
echo "Il n'y a rien"
fi
ksh: 454848: unknown test operator
Il n'y a rien

La commande

ps -fu boe2 | grep enterprise115 | grep -v grep

me renvoie bien la liste des process contenant enterprise115 et un

echo $?

renvoie 0.

Merci de m'aider big_smile

Dernière modification par iuchiban (Le 03/01/2008, à 15:51)


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#7 Le 03/01/2008, à 15:58

mekare

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

ksh: 454848: unknown test operator

Ce n'est pas du bash ton script ?
Si c'est du bash mettre en début de script :
#!/bin/bash

Hors ligne

#8 Le 03/01/2008, à 16:20

iuchiban

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

Bon, en fait j'ai à  nouveau résolu mon script ^^

Déjà , c'est sûr du ksh, mais là , c'était le code tapé direct en console.

Enfin, j'ai résolu mon problème avec :

if [ $(ps -fu boe | grep enterprise115 | grep -v grep | wc -l) -gt 0 ]
then
echo "Il y a des process qui tournent"
ps -fu boe | grep enterprise115 | grep -v grep | awk '{print $1" "$2}'
else
echo "Aucun process en cours"
fi

Merci encore à  tout le monde tongue


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#9 Le 03/01/2008, à 18:35

Link31

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

Tu connais pkill ?

man pkill

Hors ligne

#10 Le 04/01/2008, à 08:10

iuchiban

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

cft@sxanoo2:/fnsw/local/import >man pkill
No manual entry found for pkill.
cft@sxanoo2:/fnsw/local/import >

Je travaille sous AIX wink


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#11 Le 04/01/2008, à 14:25

freebird

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

AIX et ses commandes hors normes. Que du bonheur roll

Hors ligne

#12 Le 04/01/2008, à 17:44

Yannick_LM

Re : [Plus Résolu en fait :/. Ah Si! :D] Script de killer

C'est marrant quasiment à  chaque fois que je poste dans le même sujet que Link, j'apprends un truc.

J'ai l'air malin avec ça dans mes aliases, maintenant :

function psgrep { ps aux | grep "$*"  | grep -v grep ;}
man pgerp a écrit :

DESCRIPTION
       pgrep looks through the currently running processes and lists the pro‐
       cess IDs which matches the selection

sad lol

Dernière modification par Yannick_LM (Le 04/01/2008, à 17:45)


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne