Configurei o crontab para executar os trabalhos diários.
Às vezes, ele falhou e para sempre em loop/trabalho no mesmo diretório.
No dia seguinte, o crontab executará o mesmo script no mesmo diretório.
Espera-se que termine o trabalho todas as noites, mas agora, quando um dia não foi concluído, será misturado com o trabalho no dia seguinte.
Eu pretendo fazer uma reinicialização (diária) (ex: 16:00) antes do trabalho cron diário (17:00), os trabalhos cron serão executados após a reinicialização sem login do usuário?
#Nota Está claro que o problema é do script (e o que o script está fazendo) e não do crontab.
Sim, desde que o
cron
daemon esteja em execução no momento, os cron jobs serão executados de acordo com o agendamento, independentemente do login do usuário.Você descreveu que sua tarefa cron não conclui/conclui o trabalho conforme o esperado. Não é provável que isso seja um problema
cron
(já que o script é acionado corretamente), mas pode ser um erro lógico em seu script de shell.Você pode solucionar o problema capturando a saída do script. Uma abordagem é permitir que o script envie os detalhes para stdout/stderr e, em seguida, defina as configurações
cron
de e-mail do .cron
irá capturar a saída e enviá-la para você. Outra abordagem é fazer o registro você mesmo, dentro do script - crie um arquivo de log e redirecione stdout/stderr de todos os comandos para esse arquivo.Se a falha ocorrer apenas em condições específicas, você poderá incorporar verificações para isso em seu script. Você pode verificar o status de saída dos comandos principais e relatar uma falha quando apropriado.
Por fim, uma nota sobre a reinicialização. Se o sistema não estiver em execução no horário agendado,
cron
não executará o trabalho mesmo depois que o sistema voltar a ficar online. Se este for o cenário que você tem, examineanacron
.