Stellen Sie sicher, dass ein Cron-Job abgeschlossen wurde

9

Gibt es einen Befehl, der ausgeführt werden kann, um zu überprüfen, ob ein Cron-Job eines Benutzers erfolgreich ausgeführt wurde?

Plattform ist Ubuntu 8.04 LTS.

Ich habe Skripte in / home / useraccount / bin /

Laufen

crontab -l

Wenn Sie als Benutzer angemeldet sind, erhalten Sie Folgendes:

# m h  dom mon dow   command

@hourly /home/useraccount/bin/script_1

@hourly /home/locateruser/bin/script_2

Mir ist klar, dass Skripte E-Mails senden oder mit einem Zeitstempel in ein Protokoll schreiben können, aber ich frage mich, ob es nur eine Möglichkeit gibt, zu überprüfen, ob sie über die Befehlszeile ausgeführt wurden.

BEARBEITEN :

ich rannte

ps -ef|grep cron 

... und es zeigt

root      4358     1  0 Mar12 ?        00:00:00 /usr/sbin/cron

Ich bin mir nicht sicher, ob dies darauf hinweist, dass die Jobs ausgeführt werden.

CaseyIT
quelle
Ich denke, Cron läuft immer. Wenn Ihre Cron-Jobs jedoch einen anderen Prozess starten, können Sie mit ps testen, ob der neue Prozess ausgeführt wird
David Fox,

Antworten:

15
grep scriptname /var/log/syslog
Bis auf weiteres angehalten.
quelle
Die Frage bezieht sich speziell auf Benutzer-Crontabs. Normale Benutzer haben normalerweise keinen Zugriff auf / var / log / syslog. Dies funktioniert also nur, wenn Sie auch Root auf diesem Computer haben.
jlh
4

/ var / log / cron

Sie können überprüfen, ob es derzeit ausgeführt wird mit:

ps aux
David Fox
quelle
3

Um sicherzustellen, dass ein Skript erfolgreich abgeschlossen wurde, sollte wirklich eine temporäre Datei verwendet werden. Erstellen Sie es, wenn der Job gestartet wird, und löschen Sie ihn, wenn er beendet ist. Dies führt auch zu Abstürzen und verhindert, dass derselbe Job im Fehlerfall erneut ausgeführt wird.

#!/bin/bash

# check if there is already a temp file with suffix .myscript in /tmp,
# if file exists return with status of 666
[ -f /tmp/*.bla ] && exit 666

# create a temp file with suffix .myscript
TEMP_FILE=`mktemp --suffix .myscript`
touch $TEMP_FILE

#
# script stuff
#

# we are done, clean-up after ourselves
rm $TEMP_FILE
Benjamin Bannier
quelle
Dies ist eine gute Praxis
Henry the Hengineer
1

Ich habe ein Tool namens http://cronitor.io erstellt , weil ich eine Lösung zur Überwachung einiger Cron-Jobs benötigte und mit den vorhandenen Optionen nicht zufrieden war. Es ist kostenlos, einen einzelnen Job zu überwachen, und es gibt kostenpflichtige Pläne für die geschäftliche Nutzung.

Das Tolle an Cronitor ist, dass Sie ihm nur einen Cron-Ausdruck wie * / 5 * * * MW geben und Sie benachrichtigt werden, wenn der Job nicht planmäßig startet, länger als erwartet ausgeführt wird oder sich selbst überlappt.

Encoderer
quelle
0

Sie können sich auch Ergebnisse per E-Mail zusenden lassen.

30 3 * * * find /home/*/Maildir/.Spam/{new,cur}/ -type f -mtime +6 -delete| \
           mail -e -s "task #1 report" [email protected]
Art W.
quelle