Mostrar os registros do cron que provam isso.
Talvez o cron ou o sistema seja executado em um fuso horário diferente?
Ao programar um trabalho a cada x
horas, como saber quais horas serão selecionadas?
Por exemplo, temos um cronjob definido para */8
, que é executado às 2h, 10h, etc., em vez da meia-noite, 8h, etc.
Tente isto:
0 2-18/8 * * * /path/to/your/script
Para esclarecer a situação, na verdade vimos gráficos que mostraram que o trabalho começou às 2h, 10h, etc.
Ao investigar o problema, descobrimos que o cron foi lançado com TZ=UTC
, enquanto /etc/timezone
está definido como Europe/Zurich
. Parece que o cron foi reiniciado no momento em que /etc/timezone
continha UTC
e nunca foi reiniciado, pois /etc/timezone
foi alterado.
Como resultado, o cron não apenas inicia seus jobs no UTC, mas também faz login no UTC, o que resulta em /var/log/auth.log
contendo itens como:
May 25 08:19:57 ip-10-50-81-194 sshd[6216]: pam_unix(sshd:session): session opened for user root by (uid=0)
May 25 06:25:01 ip-10-50-81-194 CRON[6385]: pam_unix(cron:session): session opened for user root by (uid=0)
May 25 06:29:44 ip-10-50-81-194 CRON[6385]: pam_unix(cron:session): session closed for user root
May 25 08:53:36 ip-10-50-81-194 sudo: nagios : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/opt/nagios-plugins/check_system_update.pl
Como o collectd está sendo executado corretamente em Europe/Zurich
, ele mostra os trabalhos a partir das 2h00 (meia-noite UTC), 10h (8h UTC), etc.
A passagem da variável TZ sempre fará com que o script seja executado nesse fuso horário, independentemente do fuso horário local do seu sistema. Se você não quiser esse comportamento, remova a variável TZ da linha.
O * significa firs-last, por isso, se você configurar o cronjob como
0 */2 * * * echo "runat midn, 2am, 4am ..., everyday"
deve ser o mesmo que
0 0-23/2 * * * echo "runat midn, 2am, 4am ..., everyday"
No seu exemplo, trabalhos como
0 0-23/8 * * * command
ou
0 */8 * * * command
deve ser executado às 0:00 8:00 16:00 ...
Talvez sua hora ou horário estejam erradas. Mostre-nos sua saída de crontab -l e verifique suas configurações atuais de hora e fuso horário.
Tags cron