Usando o anacron no cronie no Gentoo - não roda?

1

Este é o crontab do sistema em um sistema Gentoo com cronie instalado, com o sinalizador anacron use ativado:

59  *  * * *    root    [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.hourly
9  3  * * *     root    [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.daily
19 4  * * 6     root    [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.weekly
29 5  1 * *     root    [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.monthly
*/10  *  * * *  root    [ ! -x /etc/cron.hourly/0anacron ] && { test -x /usr/sbin/run-crons && /usr/sbin/run-crons ; }

Assegura que /etc/cron.hourly/0anacron não esteja presente antes de executar qualquer coisa, porque o anacron fará os scripts cron. *. Qual é:

 # ls -la /etc/cron.hourly/0anacron 
 -rwxr-x--- 1 root root 448 May 11 23:46 /etc/cron.hourly/0anacron

Ok, então como funciona o anacron? Seu script auxiliar está no cron.hourly, mas nada no cron.hourly é executado se o script auxiliar estiver presente.

Não consigo encontrar nenhuma evidência que já tenha corrido. É uma galinha e ovo.

    
por Paul 11.05.2015 / 23:53

1 resposta

3

Até onde eu sei, o anacron do cronie é disparado pelo cron executando /etc/cron.hourly/0anacron . Mas isso nunca acontece devido às linhas 1 e 5 do crontab (elas são executadas somente no caso de o 0anacron não ser executável).

Eu consertei isso alterando /etc/crontab para seguir

59  *  * * *      root  run-parts /etc/cron.hourly
#59  *  * * *     root  [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.hourly
#9  3  * * *      root  [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.daily
#19 4  * * 6      root  [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.weekly
#29 5  1 * *      root  [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.monthly
#*/10  *  * * * root    [ ! -x /etc/cron.hourly/0anacron ] && { test -x /usr/sbin/run-crons && /usr/sbin/run-crons ; }

A linha 1 garante que os scripts em /etc/cron.hourly sejam executados pelo cron regularmente a cada hora (sem verificação do arquivo lastrun).

Eu comentei a remoção de arquivos lastrun para diário, semanal e mensal, porque eles são executados via anacron (definido em /etc/anacrontab ).

    
por 22.07.2015 / 14:00

Tags