GNU/Linux >> Linux Esercitazione >  >> Linux

Crontab Log:come registrare l'output di My Cron Script

Domanda :Ho creato uno script di shell backup.sh e l'ho aggiunto al mio crontab per eseguirlo quotidianamente. Come posso verificare se il processo di script cron di backup è stato eseguito correttamente? Inoltre, ho diverse istruzioni echo all'interno del mio script di shell backup.sh. Come faccio a salvare l'output del mio script in un file di registro quando viene eseguito come cron job?

Risposta :Supponiamo che tu abbia aggiunto backup.sh al tuo crontab come mostrato di seguito per eseguirlo a mezzanotte ogni giorno.

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

Per verificare se questo lavoro è stato eseguito correttamente o meno, controlla il file /var/log/cron, che contiene informazioni su tutti i lavori cron che vengono eseguiti nel tuo sistema. Come puoi vedere dal seguente output, il lavoro cron di john è stato eseguito con successo.

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

Il registro Cron contiene le seguenti informazioni:

  • Timestamp:la data e l'ora in cui è stato eseguito il lavoro cron
  • Nome host:il nome host del server (ad esempio, dev-db)
  • Il nome cron demone e il PID. Ad esempio, crond[20399]
  • Nome utente:il nome utente con cui è stato eseguito questo lavoro cron. Ad esempio, giovanni.
  • CMD – Tutto ciò che segue questo è il vero comando che è stato eseguito in quel momento.

Se sono presenti istruzioni echo all'interno di backup.sh, potresti voler registrarle in un file. In generale, se lo script backup.sh cron genera output (inclusi gli errori), potresti voler registrarli in un file di registro. Per fare ciò, modifica la voce crontab e aggiungi l'output e il reindirizzamento degli errori come mostrato di seguito.

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

In quanto sopra:

  • > /home/john/logs/backup.log indica che l'output standard dello script backup.sh verrà reindirizzato al file backup.log.
  • 2>&1 indica che l'errore standard (2>) viene reindirizzato allo stesso descrittore di file indicato dallo standard output (&1).
  • Quindi, sia l'output standard che l'errore verranno reindirizzati a /home/john/logs/backup.log

Linux
  1. Dov'è il registro cron / crontab? / Come abilitare il Cron Log?

  2. Come assegnare l'output di un comando a una variabile di shell?

  3. Come evidenziare una parola nell'output di "cat"??

  4. Come funzionano gli interni del demone Cron?

  5. Come pianificare i lavori Cron con Crontab

Come automatizzare le attività in Linux usando Crontab

Come impostare il lavoro cron per eseguire uno script PHP in cPanel?

Come verificare se un Cron Job è stato eseguito (registro Crontab)

Come reindirizzare l'output di system() su un file?

Come interpretare l'output di netstat -o / netstat --timer

Come copiare l'output del terminale?