Cron executando diariamente duas vezes

2

No meu servidor CentOS 7, os erros gerados por um script de backup noturno que deveria ter sido executado corretamente fizeram com que eu checasse minha atividade no cron. Descobri que cron.daily está sendo executado duas vezes - aqui está a seção relevante de /var/log/cron depois que eu removi meu script de backup para ver se de alguma forma estava causando o problema:

Oct 10 02:28:01 mail CROND[1750]: (root) CMD (run-parts /etc/cron.hourly)
Oct 10 02:28:01 mail run-parts(/etc/cron.hourly)[1750]: starting 0anacron
Oct 10 02:28:01 mail anacron[1759]: Anacron started on 2017-10-10
Oct 10 02:28:01 mail run-parts(/etc/cron.hourly)[1761]: finished 0anacron
Oct 10 02:28:01 mail anacron[1759]: Normal exit (0 jobs run)
Oct 10 02:30:01 mail CROND[1766]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 02:40:01 mail CROND[1847]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 02:50:01 mail CROND[1936]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 03:00:01 mail CROND[2032]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 03:10:01 mail CROND[2148]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 03:17:01 mail CROND[2223]: (root) CMD (run-parts /etc/cron.daily)
Oct 10 03:17:01 mail run-parts(/etc/cron.daily)[2223]: starting kizunademo
Oct 10 03:17:02 mail run-parts(/etc/cron.daily)[2259]: finished kizunademo
Oct 10 03:17:02 mail run-parts(/etc/cron.daily)[2223]: starting logrotate
Oct 10 03:17:02 mail run-parts(/etc/cron.daily)[2266]: finished logrotate
Oct 10 03:17:02 mail run-parts(/etc/cron.daily)[2223]: starting man-db.cron
Oct 10 03:17:02 mail run-parts(/etc/cron.daily)[2277]: finished man-db.cron
Oct 10 03:20:01 mail CROND[2288]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 03:28:01 mail CROND[2367]: (root) CMD (run-parts /etc/cron.hourly)
Oct 10 03:28:01 mail run-parts(/etc/cron.hourly)[2367]: starting 0anacron
Oct 10 03:28:01 mail anacron[2376]: Anacron started on 2017-10-10
Oct 10 03:28:01 mail run-parts(/etc/cron.hourly)[2378]: finished 0anacron
Oct 10 03:28:01 mail anacron[2376]: Will run job 'cron.daily' in 35 min.
Oct 10 03:28:01 mail anacron[2376]: Jobs will be executed sequentially
Oct 10 03:30:01 mail CROND[2381]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 03:40:01 mail CROND[2462]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 03:50:02 mail CROND[2547]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 04:00:01 mail CROND[2670]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Oct 10 04:03:01 mail anacron[2376]: Job 'cron.daily' started
Oct 10 04:03:01 mail run-parts(/etc/cron.daily)[2685]: starting kizunademo
Oct 10 04:03:02 mail run-parts(/etc/cron.daily)[2721]: finished kizunademo
Oct 10 04:03:02 mail run-parts(/etc/cron.daily)[2685]: starting logrotate
Oct 10 04:03:02 mail run-parts(/etc/cron.daily)[2728]: finished logrotate
Oct 10 04:03:02 mail run-parts(/etc/cron.daily)[2685]: starting man-db.cron
Oct 10 04:03:03 mail run-parts(/etc/cron.daily)[2739]: finished man-db.cron
Oct 10 04:03:03 mail anacron[2376]: Job 'cron.daily' terminated
Oct 10 04:03:03 mail anacron[2376]: Normal exit (1 job run)

Por que cron.daily está sendo executado duas vezes? Como você pode ver, o log contém algumas entradas relacionadas à segunda execução que não estão presentes na primeira execução: duas linhas anunciando a próxima execução, e mais duas linhas dizendo que ela terminou com uma saída normal. A primeira execução simplesmente executou os scripts sem fanfarra extra. Eu suponho que significa alguma coisa, mas eu não sei o quê.

Eu verifiquei tudo que eu conseguia pensar em duplas de algo. Tenho certeza que li todos os tópicos semelhantes sobre o assunto, então compare com o seguinte antes de chamar isso de uma questão duplicada. Com base no Por que o cron está sendo executado duas vezes? Eu verifiquei processos extras - a saída completa de ps aux | grep cron é o seguinte, portanto, há apenas um processo:

root      9383  0.0  0.2 112672  2340 pts/0    S+   15:18   0:00 grep --color=auto cron
root     25624  0.0  0.0 126248   320 ?        Ss   Sep30   0:02 /usr/sbin/crond -n

Baseado em trabalhos Cron executando duas vezes - servidor Ubuntu 12.04 Também verifiquei crontab -l -u root , que disse no crontab for root .

E aqui está meu / etc / crontab:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
[email protected]

28 * * * * root run-parts /etc/cron.hourly
17 3 * * * root run-parts /etc/cron.daily
44 2 * * 0 root run-parts /etc/cron.weekly
8 2 7 * * root run-parts /etc/cron.monthly

Pensamentos?

EDIT (9 meses após esta discussão ter ficado em silêncio):

Comentário hoje de Marin Velikov me informou que existe um arquivo anacrontab (eu sei que é bobagem, mas nem me ocorreu). Aqui está o seu conteúdo:

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

Então essa é a causa. Mas por que o sistema seria configurado para rodar os dois? Eu assumo que alguém é mais esperto do que eu, então eu hesito em mexer com ele antes de saber o propósito. E se eu realmente me livrar das entradas em crontab ou anacrontab , qual é a melhor? Anacron é aparentemente a ferramenta mais sofisticada, mas parece estranho / errado esvaziar o crontab . Eu sou muito velha?

    
por OsakaWebbie 10.10.2017 / 08:32

1 resposta

2

Why is cron.daily running twice?

crond está sendo executado uma vez:

Oct 10 03:17:01 mail CROND[2223]: (root) CMD (run-parts /etc/cron.daily)

anacron está sendo executado uma vez:

Oct 10 04:03:01 mail anacron[2376]: Job 'cron.daily' started

crond started anacron , é por isso que você não viu um processo para ele:

Oct 10 03:28:01 mail CROND[2367]: (root) CMD (run-parts /etc/cron.hourly)
Oct 10 03:28:01 mail run-parts(/etc/cron.hourly)[2367]: starting 0anacron
Oct 10 03:28:01 mail anacron[2376]: Anacron started on 2017-10-10
Oct 10 03:28:01 mail run-parts(/etc/cron.hourly)[2378]: finished 0anacron
Oct 10 03:28:01 mail anacron[2376]: Will run job 'cron.daily' in 35 min.
Oct 10 03:28:01 mail anacron[2376]: Jobs will be executed sequentially
    
por 10.10.2017 / 08:55