GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Crontab-Protokoll:So protokollieren Sie die Ausgabe meines Cron-Skripts

Frage :Ich habe ein backup.sh-Shell-Skript erstellt und es zu meiner Crontab hinzugefügt, um es täglich auszuführen. Wie kann ich überprüfen, ob der Backup-Cron-Skript-Job erfolgreich ausgeführt wurde? Außerdem habe ich mehrere Echo-Anweisungen in meinem Shell-Skript backup.sh. Wie speichere ich die Ausgabe meines Skripts in einer Protokolldatei, wenn es als Cron-Job ausgeführt wird?

Antwort :Nehmen wir an, Sie haben Ihrer Crontab die Datei backup.sh wie unten gezeigt hinzugefügt, um sie jeden Tag um Mitternacht auszuführen.

$ crontab -e
59 23 * * * /home/john/bin/backup.sh

Um zu überprüfen, ob dieser Job erfolgreich ausgeführt wurde oder nicht, überprüfen Sie die Datei /var/log/cron, die Informationen über alle Cron-Jobs enthält, die in Ihrem System ausgeführt werden. Wie Sie der folgenden Ausgabe entnehmen können, wurde Johns Cron-Job erfolgreich ausgeführt.

$ tail /var/log/cron
Oct  8 22:00:00 dev-db crond[18340]: (root) CMD (/bin/sh /home/root/bin/system_check &)
Oct  8 23:00:00 dev-db crond[20348]: (oracle) CMD (/bin/sh /home/oracle/bin/cleanup.sh &)
Oct  8 23:59:00 dev-db crond[20399]: (john) CMD (/bin/sh /home/john/bin/backup.sh &)

Das Cron-Protokoll enthält die folgenden Informationen:

  • Zeitstempel – Datum und Uhrzeit der Ausführung des Cronjobs
  • Hostname – Der Hostname des Servers (z. B. dev-db)
  • Der Cron-Deamon-Name und die PID. Beispiel:crond[20399]
  • Benutzername – Der Benutzername, unter dem dieser Cronjob ausgeführt wurde. Zum Beispiel John.
  • CMD – Alles, was darauf folgt, ist der eigentliche Befehl, der zu diesem Zeitpunkt ausgeführt wurde.

Wenn sich in der Datei backup.sh Echo-Anweisungen befinden, möchten Sie diese möglicherweise in einer Datei protokollieren. Wenn das Cron-Skript backup.sh irgendwelche Ausgaben (einschließlich Fehler) auslöst, sollten Sie diese im Allgemeinen in einer Protokolldatei protokollieren. Ändern Sie dazu den crontab-Eintrag und fügen Sie die Ausgabe- und Fehlerumleitung wie unten gezeigt hinzu.

$ crontab -e
59 23 * * * /home/john/bin/backup.sh > /home/john/logs/backup.log 2>&1

Oben:

  • > /home/john/logs/backup.log gibt an, dass die Standardausgabe des Skripts backup.sh in die Datei backup.log umgeleitet wird.
  • 2>&1 gibt an, dass der Standardfehler (2>) auf denselben Dateideskriptor umgeleitet wird, auf den die Standardausgabe (&1) zeigt.
  • Also werden sowohl die Standardausgabe als auch der Fehler nach /home/john/logs/backup.log umgeleitet

Linux
  1. Wo ist das Cron/Crontab-Protokoll? / Wie aktiviere ich das Cron-Protokoll?

  2. So erstellen Sie ein Startskript mit Crontab in Lubuntu Linux

  3. Wie weist man die Ausgabe eines Befehls einer Shell-Variablen zu?

  4. Wie funktionieren die Interna des Cron-Daemons?

  5. Wie man einen Cronjob an bestimmten Wochentagen ausführt

So automatisieren Sie Aufgaben in Linux mit Crontab

Wie stelle ich den Cron-Job so ein, dass er ein PHP-Skript in cPanel ausführt?

So überprüfen Sie, ob ein Cron-Job ausgeführt wurde (Crontab-Protokoll)

Wie leitet man die Ausgabe von system() in eine Datei um?

Wie verwalte ich die Protokollausführlichkeit in einem Shell-Skript?

So interpretieren Sie die Ausgabe von netstat -o / netstat --timers