Já chegou a usar o recurso embutido do programa para isso (a opção -m destinatario@gmail.com
)?
Se eu estiver entendendo corretamente o manual (já que o iwatch
não é empacotado para minha distribuição), ele vai rodar continuamente. Por isso, ele nunca se encerra e o mail
nunca recebe um sinal de fim de entrada. Seria como você rodar yes 'Corpo de texto' | mail ...
. Não tem mensagem de erro pois o mail
espera de boa-fé que um dia o programa que está atrás dele na pipeline encerre para que ele possa fechar a mensagem.
Em vez disso, o | mail
tem que ser embutido dentro argumento -c
(o comando que o iwatch
roda a cada evento recebido):
iwatch -r -c '(w; ps aux) | mail -s %f" foi alterado" destinatario@gmail.com' /etc
Mais duas coisas:
- Mesmo que o
iwatch
não rodasse continuamente, você iria receber um email com título%f foi alterado
(literalmente), pois oiwatch
não consegue ler ou alterar os comandos além do|
. - Acho que você esqueceu de deixar o
(w;ps aux)
entre aspas ao copiar aqui, caso contrário receberiabash: erro de sintaxe próximo ao token inesperado '('
).