Estou fazendo esta pergunta, porque não encontrei a resposta aqui:
Contexto
Temos vários servidores executando o debian / wheezy.
Uma tarefa de backup requer que nós desativemos o crontab de um usuário específico durante o backup, portanto, temos um script, executado diariamente, que é aproximadamente:
# user is legec :
# save the crontab to a file
crontab -ulegec -l > /home/legec/.backup/crontab
# empty the crontab
echo "" | crontab -ulegec
backup ...
# reload crontab
cat /home/legec/.backup/crontab | crontab -ulegec
E isso funciona como esperamos, na grande maioria das vezes.
Esta tarefa é executada em ~ 80 servidores; dependendo do servidor, a tarefa de backup levará de 1 minuto a 2 horas.
Bug
De vez em quando, o cron não detectará o último recarregamento e não executará nenhuma das tarefas listadas no crontab.
O arquivo em /var/spool/cron/crontabs/legec
tem o conteúdo esperado e a data de modificação:
$ ls -lh /var/spool/cron/crontabs/legec
-rw------- 1 legec crontab 6.7K Sep 22 04:03 /var/spool/cron/crontabs/legec
mas os registros cron indicam que o cron não detectou a última alteração:
$ cat /var/log/cron.log | grep -E "LIST|RELOAD|REPLACE"
...
# yesterday's backup : all went fine
Sep 21 04:00:06 lgserver crontab[6670]: (root) LIST (legec)
Sep 21 04:00:06 lgserver crontab[6671]: (root) LIST (legec)
Sep 21 04:00:06 lgserver crontab[6673]: (root) REPLACE (legec)
Sep 21 04:01:01 lgserver /usr/sbin/cron[2025]: (legec) RELOAD (crontabs/legec)
Sep 21 04:03:01 lgserver crontab[7071]: (root) REPLACE (legec)
Sep 21 04:03:01 lgserver /usr/sbin/cron[2025]: (legec) RELOAD (crontabs/legec)
# today's backup : no final RELOAD event
Sep 22 04:00:07 lgserver crontab[24163]: (root) LIST (legec)
Sep 22 04:00:07 lgserver crontab[24164]: (root) LIST (legec)
Sep 22 04:00:07 lgserver crontab[24166]: (root) REPLACE (legec)
Sep 22 04:01:01 lgserver /usr/sbin/cron[2025]: (legec) RELOAD (crontabs/legec)
Sep 22 04:03:01 lgserver crontab[24458]: (root) REPLACE (legec)
# no RELOAD line here
"De vez em quando" significa: sem regularidade, vemos este bug talvez uma vez por mês, em um servidor aleatório fora dos ~ 80 que estão sendo executados.
Pergunta
Alguém tem uma pista sobre onde procurar?