grep scriptname /var/log/syslog
Existe um comando que pode ser executado para verificar se uma tarefa cron do usuário foi executada com êxito?
Plataforma é o Ubuntu 8.04 LTS.
Eu tenho scripts em / home / useraccount / bin /
executando
crontab -l
enquanto estiver conectado como resultado do usuário:
# m h dom mon dow command
@hourly /home/useraccount/bin/script_1
@hourly /home/locateruser/bin/script_2
Eu percebo que os scripts podem enviar e-mails ou gravar em um log com um registro de data e hora, mas imaginando se há apenas uma maneira de verificar se ele foi executado na linha de comando.
EDITAR :
eu corri
ps -ef|grep cron
... e mostra
root 4358 1 0 Mar12 ? 00:00:00 /usr/sbin/cron
Não tenho certeza se isso indica que está executando os trabalhos embora ...
/ var / log / cron
você pode verificar se está em execução no momento:
ps aux
Para garantir que um script seja concluído com êxito, é necessário usar um arquivo temporário. Crie-o quando o trabalho for iniciado e exclua-o quando terminar. Isso também trava falhas e evita a execução do mesmo trabalho novamente em caso de erros.
#!/bin/bash
# check if there is already a temp file with suffix .myscript in /tmp,
# if file exists return with status of 666
[ -f /tmp/*.bla ] && exit 666
# create a temp file with suffix .myscript
TEMP_FILE='mktemp --suffix .myscript'
touch $TEMP_FILE
#
# script stuff
#
# we are done, clean-up after ourselves
rm $TEMP_FILE
Eu criei uma ferramenta, link , porque eu precisava de uma solução para monitorar alguns cron jobs e não estava feliz com as opções existentes . É grátis monitorar um único trabalho e existem planos pagos para uso comercial.
O que é ótimo sobre o Cronitor é que você acabou de dar uma expressão cron como * / 5 * * * M-W e será alertado se o trabalho não iniciar no horário, for maior que o esperado ou se sobrepor.
Você também pode enviar os resultados por e-mail para você.
30 3 * * * find /home/*/Maildir/.Spam/{new,cur}/ -type f -mtime +6 -delete| \
mail -e -s "task #1 report" [email protected]