Erro: hora ruim; enquanto lê / etc / crontab

1

Meus crons são os seguintes, o erro em / var / log / syslog é o título do post.

# week
*/2 12/1 * * 1-5 tills13 python3 /home/tills13/script.py --sync
1/2 12/1 * * 1-5 tills13 python3 /home/tills13/script.py --sync

# weekends
*/2 9/1 * * 0,6 tills13 python3 /home/tills13/script.py --sync
1/2 9/1 * * 0,6 tills13 python3 /home/tills13/script.py --sync

Eu usei esta ferramenta para gerar / validar meus crons. Estou executando o Ubuntu 15.04.

Basicamente, eu gostaria que fosse executado a cada hora após o meio-dia nos dias de semana (os dois primeiros), e a cada hora depois das 9h nos fins de semana (os dois segundos).

    
por Tyler Sebastian 12.11.2015 / 02:52

1 resposta

3

Dependendo do seu sabor do cron, pode não adorar a / notação.

Em vez de tentar torná-lo supercompacto, diga-lhe o que você deseja fazer de uma maneira mais aceitável para a maioria das versões do cron fashion. Pode ter a vantagem de ser mais óbvio para mais humanos também. É um sistema simples - você realmente não deveria precisar de uma "ferramenta" para criar um crontab além de um editor de texto. Como o meio-dia acontece depois das 9, você só precisa fornecer um "caso especial" para 9, 10 e 11 no domingo e no sábado.

# every day at 2 minutes past the hour from Noon to 11 PM
2 12-23 * * * tills13 python3 /home/tills13/script.py --sync
# weekends at 2 past the hours of 9, 10 and 11
2 9-11 * * 0,6 tills13 python3 /home/tills13/script.py --sync

Também deve funcionar no final de semana (domingo é 0 e 7):

2 9-11 * * 6-7 tills13 python3 /home/tills13/script.py --sync

se você quiser a cada hora aos 2 minutos anteriores.

Eu não me preocupei em decodificar a / notação completamente, (não me lembro dos meus dias do cron 30 anos atrás e do wikipedia article não é abrangente WRT isso) mas se você realmente quer a cada 2 minutos, basta listá-los - 2,4,6,8,10,12 (etc)

9-11 no campo hora é equivalente a 9,10,11 (por exemplo) e pode ser escrito de qualquer maneira e trabalho. Se você preferir executar a hora, altere 2 no campo de minutos para 0.

Minute Hour Day-of-Month Month Day-of-Week Command é tudo para a notação crontab padrão, com intervalos de 0-59, 0-23, 1-31, 1-12, and 0-6 (but 7 is commonly accepted as 0 here) - os campos de hora podem ter listas separadas por vírgulas ou intervalos separados por traço ou o * significa todos - o espaço em branco separa os campos.

    
por 12.11.2015 / 03:32