Como Modificar um Assunto de Email Cronjob

43

Estou executando meia dúzia de trabalhos cron diferentes da minha hospedagem no Hostmonster.com. Quando um cronjob foi executado, recebo um email com a saída do script.

O email vem no formato de:

From: Cron Daemon
Subject: Cron  /ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

O problema com isso é que o assunto do email dificulta muito a leitura de qual cronjob o email está relacionado.

Existe uma maneira de modificar o assunto de um email de cronjob para facilitar a leitura?

Por exemplo:

From: Cron Daemon
Subject: Optimize MySQL Database
    
por justinl 20.08.2009 / 08:58

6 respostas

11

Nos meus sistemas (a maioria Debian), toda a saída, de um script / programa chamado como entrada crontab, é enviada por email para o account@localhost que iniciou o cron. Esses e-mails têm um assunto como o seu.

Se você deseja receber um email, escreva um script que não tenha saída por conta própria. Mas, em vez disso, coloque todas as saídas em um arquivo de texto.

E com

mail -s 'your subject' adress@where < textfile

você recebe da maneira que quiser.

    
por 20.08.2009 / 09:35
49

Ou use o comando sh noop (:)

0 9-17 * * 1-5    : Queue Summary; PATH=/usr/sbin qshape

O assunto ainda parece confuso, mas pelo menos é descritivo e não requer scripts estranhos.

    
por 20.10.2009 / 00:08
19

Canalize a saída do trabalho do cron para enviar diretamente e, em seguida, você pode preencher a linha de assunto. a sintaxe 2>&1 envia qualquer saída de erro que, de outra forma, desapareceria.

mycmd 2>&1 | mail -s "mycmd output" myname
    
por 20.08.2009 / 09:50
11

Assuma a responsabilidade do crond por enviar a saída do comando (ou não, se não houver), enviando a saída e o stderr para 'mailx -E'. Por exemplo:

0 * * * * your-command 2>&1 | mailx -E -s "Descriptive Subject" $LOGNAME

A opção '-E' do Mailx é legal porque, assim como o próprio crond, ele não enviará um email se não houver saída para enviar.

    
por 03.04.2014 / 09:53
2

Outra solução é escrever um script de shell com a linha de assunto que você deseja que chame o comando correto. No seu exemplo, isso seria:

#Optimize_MySQL_Database.sh

/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

Você pode incluir seu diretório bin no caminho, definindo-o no arquivo crontab.

    
por 28.12.2009 / 17:43
0

TENTE ISTO - Na linha de comando, implemente o seguinte código ---

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" [email protected].**
  • Esta é apenas uma referência para guiá-lo
por 27.06.2013 / 09:49