Quando o cron estiver concluído Como obter uma notificação por email e efetuar login em um arquivo (ambos)

4

Eu sou um novato no Linux. Estou tentando descobrir as coisas. Alguém pode gentilmente me ajudar a combinar esses dois comandos?

(1) Normalmente, os resultados do cron podem ser direcionados para um arquivo de log editando o crontab da maneira abaixo

*/10 * * * * /scripts/mysc.sh >> /home/ara/Desktop/test/log.txt 2>&1 

(2) e caso precisemos que os resultados do cron sejam e-mails, podemos usar [email protected] como

[email protected]
*/10 * * * * /scripts/mysc.sh

Mas como combinar as duas opções (1) e (2)? Eu vi algum espaço webhosting ter as duas opções ativadas simultaneamente. Eu fiz minha pesquisa / googling mas não consegui. Estou usando o centos 6.5 e uso crontab -e para editar.

    
por Aravinda 06.07.2014 / 14:45

2 respostas

6

Seu primeiro exemplo envia stderr e stdout para o arquivo (2 > & 1); a variável MAILTO definida no cron capturará qualquer saída que não seja redirecionada, e isso combinado com direcionar a saída para o arquivo significa que nenhuma saída está disponível para o cron enviar por e-mail.

Sugiro usar o tee para anexar a saída ao arquivo e enviá-lo para o stdout; essa resposta - link - é muito parecida com a que você está pedindo para conseguir.

Como alternativa, siga a sugestão na primeira resposta e escreva um script de wrapper para manipular mais facilmente a saída do script e, em seguida, você pode fazer o log e ter a saída do script enviada por e-mail

    
por 06.07.2014 / 15:00
2

Cronjob para log & email:

Executar uma vez por mês à meia-noite do primeiro dia do mês: 0 0 1 * *

0 0 1 * * /home/User/script.sh > /home/User/cronlog/'date +\%Y-\%m-\%d-\%H:\%M:\%S'-cron.log 2>&1 ; mailx -s "CronJob is run successfully" [email protected],[email protected]
    
por 10.04.2015 / 11:40