
La puesta en marcha
Tengo un script /etc/cron.hourly/msm-hourly
que contiene esto:
#!/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
Cada hora:
- Cree una nueva línea en el archivo de registro
- Añade la fecha
- Luego la salida del
msm start
comando
Funcionaejecutando desde la línea de comandoasí comodentro/etc/cron.daily/
La cuestión
El resultado, cuando se ejecuta desde la línea de comando, se ve así:
[ msm-hourly.log ]
Thu Sep 12 20:56:51 UTC 2013
[ACTIVE] Server already started.
Sin embargo, después de dejarlo en ejecución por un tiempo, el resultado de cada iteración se ve así:
[ 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.
Aquí está el resultado 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
Pregunta
Intenté reemplazar y reelaborar el script seguido de /etc/init.d/crond reload
y/o /etc/init.d/crond restart
.
Las cosas se reinician sin errores y el script se ejecuta cada hora como debería... solo con todas las líneas adicionales.
¿Cómo puedo rastrear esto para comprender mejor lo que está sucediendo y solucionarlo para que msm-hourly solo se ejecute una vez por hora?
Respuesta1
Verifique /etc/crontab
que la línea for cron.hourly
sea similar a la siguiente (prestando especial atención a que solo el campo de minutos tenga un número y el resto sean asteriscos) y aparezca solo una vez.
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Además, asegúrese de que su secuencia de comandos (o /etc/cron.hourly) no esté ingresada en ningún otro crontab, incluido el de un usuario (o raíz), y que no aparezcan múltiples copias (copias de seguridad) en el archivo /etc/cron.hourly
.
Tenga en cuenta que la última línea de su secuencia de comandos se puede simplificar a:
{ echo && /bin/date && /etc/init.d/msm start; } >> $LOGFILE
Por favor vea tambiénGestión de proceso.