Estou dando uma resposta alternativa aqui, mesmo que Trevor esteja correto.
A @weeklypalavra-chave cron faz exatamente como ele mencionou. No entanto , a maioria das distribuições usa run-partspara executar seus próprios arquivos crontab agendados (a cada hora, diariamente, semanalmente e mensalmente) que não fazem uso das palavras-chave do cron.
Por exemplo , o Ubuntu possui um /etc/cron.weeklyarquivo que contém um arquivo separado para cada cronjob.
Isso geralmente é definido em /etc/crontab
A versão karmic 9.10 do Ubuntu tem o seguinte em /etc/crontab
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Portanto, o crontab semanal no Ubuntu é executado às 6h07 no domingo
Nota: ao procurar páginas de manual para implementações do crontab, você deseja usar em man 5 crontabvez de apenas man crontab. Este último fornecerá apenas a sintaxe para o comando crontab. O primeiro fornece detalhes de implementação do crontab.
Um pouco mais exigente aqui, a seção 5 nas páginas do manual é sobre formatos e convenções de arquivos, portanto, não é bem uma implementação. Ele especifica o formato do arquivo e geralmente tem exemplos
Steve Buzonas
7 é domingo? Eu pensei que 0 era domingo? (E se começou a 1, eu acho que 1 era domingo.)
felwithe
O domingo é 0 e 7, portanto, você pode escolher o que melhor se encaixa no primeiro dia da semana no seu local (segunda-feira vs. domingo).
László van den Hoek
Eu acho que isso é incorreto, então me ajudar a entender: So the weekly crontab in Ubuntu is run at 6.47am on Sunday. Isso está incorreto porque a test -x /usr/sbin/anacron ||parte do comando diz apenas para executar o material à direita de ||se "/ usr / sbin / anacron" NÃO for executável ou não existir, mas existe, portanto run-partsnunca será executado por ele cron! Em vez disso, anacrondeve estar lidando com isso, certo? A tabela de Aanacron em "/ etc / anacrontab" mostra isso semanalmente:, o 7 10 cron.weekly run-parts --report /etc/cron.weeklyque significa que o trabalho semanal é executado a cada 7 dias, com um atraso de 10 minutos.
Gabriel Staples
Mas ... não sei quando o anacron realmente funciona ou como isso determina. Você?
A resposta está na página de manual do próprio crontab, ( man 5 crontab):
Esses "apelidos" de especificação de horário especial são suportados, que substituem os 5 campos de data e hora iniciais e são prefixados pelo caractere '@':
@reboot : Run once after reboot.
@yearly : Run once a year, ie. "0 0 1 1 *".
@annually : Run once a year, ie. "0 0 1 1 *".
@monthly : Run once a month, ie. "0 0 1 * *".
@weekly : Run once a week, ie. "0 0 * * 0".
@daily : Run once a day, ie. "0 0 * * *".
@hourly : Run once an hour, ie. "0 * * * *".
Portanto, 0 0 * * 0é 00:00 (em qualquer data de qualquer mês), desde que seja domingo (dia da semana 0).
Respostas:
Estou dando uma resposta alternativa aqui, mesmo que Trevor esteja correto.
A
@weekly
palavra-chave cron faz exatamente como ele mencionou. No entanto , a maioria das distribuições usarun-parts
para executar seus próprios arquivos crontab agendados (a cada hora, diariamente, semanalmente e mensalmente) que não fazem uso das palavras-chave do cron.Por exemplo , o Ubuntu possui um
/etc/cron.weekly
arquivo que contém um arquivo separado para cada cronjob.Isso geralmente é definido em
/etc/crontab
A versão karmic 9.10 do Ubuntu tem o seguinte em
/etc/crontab
Portanto, o crontab semanal no Ubuntu é executado às 6h07 no domingo
Nota: ao procurar páginas de manual para implementações do crontab, você deseja usar em
man 5 crontab
vez de apenasman crontab
. Este último fornecerá apenas a sintaxe para o comando crontab. O primeiro fornece detalhes de implementação do crontab.fonte
So the weekly crontab in Ubuntu is run at 6.47am on Sunday
. Isso está incorreto porque atest -x /usr/sbin/anacron ||
parte do comando diz apenas para executar o material à direita de||
se "/ usr / sbin / anacron" NÃO for executável ou não existir, mas existe, portantorun-parts
nunca será executado por elecron
! Em vez disso,anacron
deve estar lidando com isso, certo? A tabela de Aanacron em "/ etc / anacrontab" mostra isso semanalmente:, o7 10 cron.weekly run-parts --report /etc/cron.weekly
que significa que o trabalho semanal é executado a cada 7 dias, com um atraso de 10 minutos.@weekly é equivalente a: 0 0 * * 0
Então, será executado às 00:00 no domingo.
fonte
A resposta está na página de manual do próprio crontab, (
man 5 crontab
):Portanto,
0 0 * * 0
é 00:00 (em qualquer data de qualquer mês), desde que seja domingo (dia da semana 0).fonte