fernandopinheiro
(usa Debian)
Enviado em 27/09/2013 - 09:56h
Olá caros amigos.
Preciso fazer um pequeno script para matar o processo do TCPDUMP e não estou conseguindo faze-lo.
O problema é que a saida do comando (a saida do comando é o PID do tcpdump) não é armazenada na variavel
Segue o script....
#!/bin/bash
while true
do
tcpdump -i eth0 -n net 192.168.0.0/16
sleep 10
num_pid= ps -ef | grep "tcpdump" | grep -v "grep" | awk '{print $2}'
kill -9 $num_pid
sleep 10
done
É simples, inicio o tcpdump fazendo a captura durante 10 segundos, após isso quero mata-lo, esperar mais 10 segundos e inicia o processo novamente.
O que acontece é que a saida do comando: ps -ef | grep "tcpdump" | grep -v "grep" | awk '{print $2}' não fica armazenada na variavel num_pid.
Ja tentei de varias formas...
Com aspas:
num_pid= 'ps -ef | grep "tcpdump" | grep -v "grep" | awk '{print $2}''
Aspas duplas
num_pid= "ps -ef | grep "tcpdump" | grep -v "grep" | awk '{print $2}'"
e sem as aspas como esta no script completo.
Sem o uso das aspas, ou seja, como esta no algoritmo completo eu consigo ver o PID sendo impresso no terminal, mas dai da erro no comando kill -9 dizendo justamente que ele nao sabe o que matar, pois o pid parece nao ficar armazenado na variavel.