A que horas as tarefas cron.monthly são executadas no SLES?

0

doc diz que cron.monthly será agendado de acordo com o primeiro tempo de execução e compara /var/spool/cron/lastrun/cron.monthly com a hora atual a ser executada. A pergunta é que ele será executado de acordo com a diretiva DAILY_TIME no arquivo / etc / sysconfig / cron ou com a hora /var/spool/cron/lastrun/cron.monthly. Se seguir /var/spool/cron/lastrun/cron.monthly devo tocar no arquivo quando quiser que o trabalho seja planejado ???

    
por rayman 12.03.2013 / 04:40

1 resposta

0

Quando o cron executa cronjobs mensais?

cron inicia os cronjobs mensais uma vez por mês com o tempo de modificação de /var/spool/cron/lastrun/cron.monthly (ou mais exatamente, em um intervalo de 15 minutos após esse período).

Você pode ver isso em /usr/lib/cron/run-crons , que é iniciado a cada 15 minutos em /etc/crontab :

# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1

Ao lidar com cronjobs mensais /usr/lib/cron/run-crons :

  1. Verifica se cron.monthly em /var/spool/cron/lastrun/ é mais antigo que um mês.

  2. Pula cronjobs mensais se não for.

  3. Caso contrário, exclui o arquivo de bloqueio:

    eval find $SPOOL/$BASE $TIME | \
              xargs --no-run-if-empty rm
    

    adiciona o cronjob mensal à lista de execução:

    if test ! -e $SPOOL/$BASE ; then
        # accept this dir, if it isn't empty 
        LIST='find $CRONDIR ! -type d'
        if [ ! -z "$LIST" ] ; then
            RUN="${RUN} ${TIME_EXT}"
        fi
    fi
    

    e executa os trabalhos.

Como posso programar cronjobs mensais?

  • Se você deseja que os cronjobs mensais sejam executados agora (ou seja, nos próximos 15 minutos), exclua /var/spool/cron/lastrun/cron.monthly .

  • Se você quiser que os cronjobs mensais sejam exibidos às 3h a partir de hoje, faça:

    $ touch -d "$(date -d "3am last month")" /var/spool/cron/lastrun/cron.monthly
    

    Modifique o comando acima de acordo com suas necessidades.

A variável DAILY_TIME

A variável DAILY_TIME aplica-se apenas a tarefas diárias do cron, como pode ser visto em /usr/lib/cron/run-crons e documentado em /etc/sysconfig/cron :

# At which time cron.daily should start. (...)
DAILY_TIME=""
    
por 12.03.2013 / 10:21

Tags