Como verificar se minhas tarefas do cron são executadas?

4

Espero fazer esta pergunta corretamente. Eu estou tentando executar todos os trabalhos que estão configurados no meu servidor, por nano /etc/crontab vejo a lista de:

# m h dom mon dow user  command
27 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
58 15    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
0 15    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
20 15    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

É possível executar o crontab para iniciar todos esses trabalhos ou forçá-los a executar?

Estou tentando confirmar que eles estão realmente em execução.

    
por Chris Hough 01.10.2011 / 04:04

4 respostas

13

Se você quiser verificar se eles são executados, use:

grep -i cron /var/log/syslog
    
por 01.10.2011 / 15:09
3

Apenas faça o que o cron faz.

  • run-parts -v /etc/cron.daily
  • run-parts -v /etc/cron.weekly
  • etc

-v imprime os nomes dos scripts antes de serem executados

    
por 18.09.2013 / 18:53
1

Se você quiser apenas verificar se cron está em execução, faça o seguinte:

service cron status
    
por 15.03.2013 / 13:41
0

Esta questão é realmente sobre anacron , que executa essas tarefas do cron.

Primeiro, certifique-se de que seu arquivo anacrontab tenha uma sintaxe válida. Se você não vê nada, então tudo bem:

/usr/sbin/anacron -T

Em seguida, você pode executar todos os scripts que serão executados por hora, diariamente, semanalmente e mensalmente. Isso pode ser muito, então dê uma olhada em /etc/cron.{hourly|daily|weekly|monthly} para ver o que vai acontecer. Para executá-los todos:

sudo su -
cd / && run-parts --report /etc/cron.hourly
cd / && run-parts --report /etc/cron.daily
cd / && run-parts --report /etc/cron.weekly
cd / && run-parts --report /etc/cron.monthly

Finalmente, veja se o sistema de agendamento do anacron está funcionando corretamente. Você pode fazer isso com:

/usr/sbin/anacron -n -f cron.monthly

( -n significa Executar trabalhos agora, -f significa força, ignorando registros de data e hora). Isso executará os trabalhos mensais. Ele será executado silenciosamente em segundo plano e você receberá um email quando o trabalho estiver concluído. Haverá um atraso aleatório antes do início do trabalho, que é especificado na coluna de atraso em anacrontab .

Você pode ver o que está acontecendo usando:

grep monthly /var/log/syslog

Você também deve ser capaz de fazer com que o anacron execute qualquer um dos ciclos fazendo algo parecido com isto:

echo "20160101" | cat > /var/spool/anacron/cron.monthly
/usr/sbin/anacron cron.monthly

Isso insere uma data muito antiga no arquivo de spool. Isso diz ao anacron que o trabalho mensal foi executado pela última vez há mais de um mês e que ele será agendado para execução agora ou em breve.

    
por 10.09.2016 / 01:33