#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
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
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
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
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 ;}
DESCRIPTION
pgrep looks through the currently running processes and lists the proâ€
cess IDs which matches the selection
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