Não consigo encontrar o processo enviando e-mail?

2

Eu fiz algo estúpido e executei um awk que executa um loop while que envia um e-mail a cada 10 segundos. Eu corri isso como um processo em segundo plano:

egrep '^[1-9]' /etc/hosts | grep -v 'localhost' | awk '{ system("ssh "$1" \while (true); do uptime > /home/dan/test.txt; grep \x60\hostname\x60 /etc/hosts >> /home/dan/test.txt; echo >> /home/dan/test.txt; echo >> /home/dan/test.txt; /home/dan/myscript.pl | grep FAIL -A1 >> /home/dan/test.txt;echo >>/home/dan/test.txt; if [[ $(grep FAIL /home/dan/test.txt) != \x22\x22 ]]; then  sendmail [email protected] < /home/dan/test.txt; fi;sleep 10; done &"); print "" }'

Eu percebi que fiz algo errado, como um monte de e-mails estão chegando, mas eu pensei que poderia simplesmente pará-lo se eu simplesmente fechar o shell. Isso não funcionou. Eu tentei fazer outros awks que executam ps-efw e grep para palavras-chave nesse comando, no caso de poder estar em execução e, em seguida, executar um kill -9 nele. Nada mostra altos. Verifiquei while , dan , sendmail , myscript.pl :

egrep '^[1-9]' /etc/hosts | grep -v 'localhost' |  awk '{ system("ssh "$1"  ps -efw | grep sendmail");}'

Acho que a minha próxima aposta é verificar se há processos enviando e-mails nessas caixas e, em seguida, matá-los ou bloqueá-los. Não tenho certeza de como posso fazer isso, já que nada em ps aux aparece.

    
por jason dancks 13.03.2016 / 08:11

1 resposta

4

Os scripts geralmente farão o 'sleep 10'. Comece colocando-os no estado parado:

pkill -ef --signal STOP 'sleep 10'

Isto irá bloquear o loop while. O uso ps -ef ou similar para encontrar o id pai do sono (coluna PPID) e matar esse processo e o sono. O processo pai será seu shell, por exemplo, bash , que está implementando o comando while que você não pode encontrar.

Você pode matar o pai com um sinal de desconfiança depois de encontrar seu pai usando ps no ID do processo encontrado por pgrep :

kill -hup $(ps -h -o ppid $(pgrep -f 'sleep 10'))
    
por 13.03.2016 / 08:28

Tags