Come faccio a sapere se i lavori sono stati / stanno effettuando? - Crontab
Domanda
Ho seguito il suggerimento in questa domanda
come io sto usando Django, ho impostato lo script per data e ora di ogni esecuzione dello script nel db negozio, ma nessuna voce è stato ancora memorizzato nel database.
C'è un modo per capire, oltre a digitare "top" e la ricerca attraverso?
Soluzione
In primo luogo, sarebbe probabilmente configurare cron per posta da soli qualsiasi uscita utilizzando MAILTO
:
In / etc / crontab:
MAILTO=username
In secondo luogo, io di solito aggiungere qualcosa al mio script che (quasi) non può assolutamente fallire, come il seguente:
#!/bin/sh
echo "$0 ran on `date +%c`" >> /tmp/crontab_test.log
# ... rest of program
Se stai chiamando uno script Python direttamente da cron, si potrebbe fare qualcosa di simile o di creare uno script di shell wrapper.
Altri suggerimenti
Se si dispone di sendmail installato, è possibile aggiungere quanto segue al '/ etc / aliases'
root: your_name@domain.com
Dopo aver fatto questo, aggiornare gli alias eseguendo questo comando:
sudo newaliases
Cron automaticamente vi mail ogni volta che un lavoro viene eseguito. Non c'è bisogno di specificare che nel file crontab.
Inoltre, assicuratevi di test le vostre capacità e-mail (per esempio assicurarsi che siano in grado di inviare messaggi di posta elettronica dal server) e, infine, creare un cronjob banale e test se si riceve una e-mail.
Non date per scontato!
Oltre a impostare cron per inviare e-mail, è possibile inviare l'output di cron per un impianto di log syslog separato aggiungendo quanto segue al /etc/syslog.conf
.
# Log cron stuff cron.* /var/log/cron.log
Questo dovrebbe registrare un messaggio per /var/log/cron.log ogni volta che un lavoro viene eseguito.