
Die Einrichtung
Ich habe ein Skript /etc/cron.hourly/msm-hourly
, das Folgendes enthält:
#!/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
Jede Stunde:
- Erstellen Sie eine neue Zeile in der Protokolldatei
- Datum hinzufügen
- Dann die Ausgabe des
msm start
Befehls
Es klapptAusführen über die Befehlszeilesowieinnerhalb/etc/cron.daily/
Das Thema
Die Ausgabe sieht bei Ausführung über die Befehlszeile folgendermaßen aus:
[ msm-hourly.log ]
Thu Sep 12 20:56:51 UTC 2013
[ACTIVE] Server already started.
Wenn man es jedoch eine Weile laufen lässt, sieht die Ausgabe jeder Iteration folgendermaßen aus:
[ 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.
Hier ist die Ausgabe von /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
Frage
Ich habe versucht, das Skript, gefolgt von /etc/init.d/crond reload
und/oder , zu ersetzen und zu überarbeiten /etc/init.d/crond restart
.
Der Neustart erfolgt ohne Fehler und das Skript wird wie vorgesehen jede Stunde ausgeführt, nur mit allen zusätzlichen Zeilen.
Wie kann ich dies aufspüren, um besser zu verstehen, was los ist, und es beheben, sodass msm-hourly nur einmal pro Stunde ausgeführt wird?
Antwort1
Überprüfen Sie /etc/crontab
, ob die Zeile cron.hourly
für die folgende Zeile ähnlich ist (achten Sie besonders darauf, dass nur das Minutenfeld eine Zahl enthält und der Rest aus Sternchen besteht) und nur einmal vorkommt.
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Stellen Sie außerdem sicher, dass Ihr Skript (oder /etc/cron.hourly) in keine anderen Crontabs eingetragen ist, einschließlich der eines Benutzers (oder Roots), und dass nicht mehrere Kopien (Backups) in erscheinen /etc/cron.hourly
.
Beachten Sie, dass die letzte Zeile in Ihrem Skript wie folgt vereinfacht werden kann:
{ echo && /bin/date && /etc/init.d/msm start; } >> $LOGFILE
Bitte beachten Sie auchProzessmanagement.