Commandes Linux awk
Résolu
ece
Messages postés
4
Statut
Membre
-
Spip -
Spip -
Bonjour a tous.
Je suis en train de réaliser un petit script destiné a lancer automatiquement un logiciel de captures réseaux.
Mon script est pratiquement validé mais je bute sur un dernier soucis :
Je souhaites réaliser une recherche d'un processus précis pour pouvoir le détruire.
Cela me donne une ligne de commande de ce style :
ps -e | grep tcpdump | awk '{z=$1}' | kill -9 $z
Pour le détail, je filtre les processus pour extraire celui que je recherche (tcpdump) en utilisant le grep, j'extrait le numéro du processus en utilisant awk (cela fonctionne car j'ai pu vérifier qu'il me sortait le bon numéro en faisant la commande ps -e | grep tcpdump | awk '{print $1}').
Cependant je ne parviens pas a mémoriser dans ma variable z ce numéro afin de pouvoir l'utiliser ensuite dans mon kill pour détruire mon processus !! J'ai pourtant l'impression que c'est syntaxiquement correct car les variables semblent s'utiliser ainsi mais le numéro de mon processus ne s'enregistre pas dans ma variable et le kill ne peut donc pas marcher car ma variable z reste vide ...
pourriez vous maider ? quest ce qui cloche dans mon script ??
merci d'avance pour votre aide
Je suis en train de réaliser un petit script destiné a lancer automatiquement un logiciel de captures réseaux.
Mon script est pratiquement validé mais je bute sur un dernier soucis :
Je souhaites réaliser une recherche d'un processus précis pour pouvoir le détruire.
Cela me donne une ligne de commande de ce style :
ps -e | grep tcpdump | awk '{z=$1}' | kill -9 $z
Pour le détail, je filtre les processus pour extraire celui que je recherche (tcpdump) en utilisant le grep, j'extrait le numéro du processus en utilisant awk (cela fonctionne car j'ai pu vérifier qu'il me sortait le bon numéro en faisant la commande ps -e | grep tcpdump | awk '{print $1}').
Cependant je ne parviens pas a mémoriser dans ma variable z ce numéro afin de pouvoir l'utiliser ensuite dans mon kill pour détruire mon processus !! J'ai pourtant l'impression que c'est syntaxiquement correct car les variables semblent s'utiliser ainsi mais le numéro de mon processus ne s'enregistre pas dans ma variable et le kill ne peut donc pas marcher car ma variable z reste vide ...
pourriez vous maider ? quest ce qui cloche dans mon script ??
merci d'avance pour votre aide
A voir également:
- Commandes Linux awk
- Invite de commandes - Guide
- Commandes terminal mac - Guide
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- R-linux - Télécharger - Sauvegarde
8 réponses
Je ne suis pas sûr du tout mais il faut peut être rediriger la sortie de ton grep à l'aide du connecteur ">" vers ta commande kill, non?
ce qui donnerais ceci: ps -e | grep tcpdump | awk '{z=$1}' > kill -9 $z
Vraiment pas convaincu :(
ce qui donnerais ceci: ps -e | grep tcpdump | awk '{z=$1}' > kill -9 $z
Vraiment pas convaincu :(
non ca ne fonctionne pas ...
je crois que le > redirige le résultat de mon awk dans un fichier et kill est un processus donc il va planter ...
merci pour ta proposition quand meme ;)
dautres idées ?
je crois que le > redirige le résultat de mon awk dans un fichier et kill est un processus donc il va planter ...
merci pour ta proposition quand meme ;)
dautres idées ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ou bien
pkill tcpdump
pour verifier avant si le processus existe :
pgrep tcpdump
tester si on peut envoyer un signal au processus :
kill -0 PID avec PID renvoyé par pgrep
voila , cela evite de faire des grep et des awk.
pkill tcpdump
pour verifier avant si le processus existe :
pgrep tcpdump
tester si on peut envoyer un signal au processus :
kill -0 PID avec PID renvoyé par pgrep
voila , cela evite de faire des grep et des awk.