GNU/Linux >> Znalost Linux >  >> Linux

Crontab Log:Jak protokolovat výstup mého skriptu Cron

Otázka :Vytvořil jsem shellový skript backup.sh a přidal jsem ho do svého crontab, aby se spouštěl denně. Jak ověřím, zda úloha zálohovacího skriptu cron proběhla úspěšně? V mém skriptu shell backup.sh mám také několik příkazů echo. Jak uložím výstup svého skriptu do souboru protokolu, když je spuštěn jako úloha cron?

Odpověď :Řekněme, že jste do crontab přidali soubor backup.sh, jak je znázorněno níže, abyste jej spustili každý den o půlnoci.

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

Chcete-li ověřit, zda byla tato úloha provedena úspěšně nebo ne, zkontrolujte soubor /var/log/cron, který obsahuje informace o všech úlohách cron, které se spouštějí ve vašem systému. Jak vidíte z následujícího výstupu, Johnova úloha cron byla úspěšně provedena.

$ 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 &)

Protokol Cron obsahuje následující informace:

  • Časové razítko – datum a čas, kdy byla úloha cron provedena
  • Název hostitele – název hostitele serveru (například dev-db)
  • Jméno démona cron a PID. Například crond[20399]
  • Uživatelské jméno – uživatelské jméno, pod kterým byla tato úloha cron provedena. Například John.
  • CMD – Cokoli po tomto je skutečný příkaz, který byl v té době proveden.

Pokud jsou v souboru backup.sh nějaké příkazy echo, možná je budete chtít přihlásit do souboru. Obecně platí, že pokud skript backup.sh cron vyvolá jakýkoli výstup (včetně chyb), můžete je chtít zaznamenat do souboru protokolu. Chcete-li to provést, upravte položku crontab a přidejte výstup a přesměrování chyb, jak je uvedeno níže.

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

Ve výše uvedeném:

  • > /home/john/logs/backup.log označuje, že standardní výstup skriptu backup.sh bude přesměrován do souboru backup.log.
  • 2>&1 označuje, že standardní chyba (2>) je přesměrována na stejný deskriptor souboru, na který ukazuje standardní výstup (&1).
  • Standardní výstup i chyba budou přesměrovány na /home/john/logs/backup.log

Linux
  1. Kde je protokol cron / crontab? / Jak povolit protokol Cron?

  2. Jak přiřadit výstup příkazu proměnné shellu?

  3. Jak fungují vnitřnosti démona Cron?

  1. Jak spustit úlohu cronu v určité dny v týdnu

  2. Jak přimět CRON, aby volal na správné PATH

  3. Jak připojit výstup do souboru?

  1. Jak používat cron na Linuxu

  2. Jak přesměrovat výstup system() do souboru?

  3. Jak zkopírovat výstup terminálu?