A configuração

A configuração

A configuração

Eu tenho um script /etc/cron.hourly/msm-hourlyque contém isso:

#!/bin/sh
LOGPATH='/opt/msm/servers/cronscripts'
LOGFILE="$LOGPATH/msm-start.log"

# Make restart dead servers
echo "" >> $LOGFILE && /bin/date >> $LOGFILE && /etc/init.d/msm start >> $LOGFILE

Toda hora:

  1. Crie uma nova linha no arquivo de log
  2. Adicione a data
  3. Então a saída do msm startcomando

Funcionaexecutando a partir da linha de comandoassim comodentro de/etc/cron.daily/

O problema

A saída, quando executada a partir da linha de comando, é semelhante a esta:

[ msm-hourly.log ]

Thu Sep 12 20:56:51 UTC 2013
[ACTIVE] Server already started.

No entanto, depois de deixá-lo rodar por um tempo, a saída em cada iteração fica assim:

[ msm-hourly.log ]

Thu Sep 12 20:56:51 UTC 2013
[ACTIVE] Server already started.


Thu Sep 12 21:01:02 UTC 2013
Thu Sep 12 21:01:02 UTC 2013

Thu Sep 12 21:01:02 UTC 2013

Thu Sep 12 21:01:02 UTC 2013

Thu Sep 12 21:01:02 UTC 2013

Thu Sep 12 21:01:02 UTC 2013
[ACTIVE] Server already started.
[ACTIVE] Server already started.
[ACTIVE] Server already started.
[ACTIVE] Server already started.
[ACTIVE] Server already started.
[ACTIVE] Server already started.

Aqui está a saída de /var/logs/cron:

Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19497]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19498]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19522]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19541]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19549]: starting msm-hourly
Sep 12 21:01:02 server run-parts(/etc/cron.hourly)[19565]: starting msm-hourly
Sep 12 21:01:03 server run-parts(/etc/cron.hourly)[20166]: finished msm-hourly
Sep 12 21:01:03 server run-parts(/etc/cron.hourly)[20182]: finished msm-hourly
Sep 12 21:01:03 server run-parts(/etc/cron.hourly)[20243]: finished msm-hourly
Sep 12 21:01:03 server run-parts(/etc/cron.hourly)[20288]: finished msm-hourly
Sep 12 21:01:04 server run-parts(/etc/cron.hourly)[20310]: finished msm-hourly
Sep 12 21:01:04 server run-parts(/etc/cron.hourly)[20315]: finished msm-hourly

Pergunta

Tentei substituir e retrabalhar o script seguido por /etc/init.d/crond reloade/ou /etc/init.d/crond restart.

As coisas reiniciam sem erros e o script é acionado a cada hora como deveria... apenas com todas as linhas extras.

Como faço para rastrear isso para entender melhor o que está acontecendo e corrigi-lo para que o msm-hourly seja executado apenas uma vez por hora?

Responder1

Verifique /etc/crontabse a linha for cron.hourlyé semelhante à abaixo (prestando atenção especial que apenas o campo dos minutos possui um número e o restante são asteriscos) e aparece apenas uma vez.

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly

Além disso, certifique-se de que seu script (ou /etc/cron.hourly) não seja inserido em nenhum outro crontabs, incluindo o de um usuário (ou root) e que múltiplas cópias (backups) não apareçam em arquivos /etc/cron.hourly.

Observe que a última linha do seu script pode ser simplificada para:

{ echo && /bin/date && /etc/init.d/msm start; } >> $LOGFILE

Por favor veja tambémGerenciamento de processos.

informação relacionada