Se sei solo interessato a sapere se il tuo cronjob è attualmente in esecuzione e quando è stato avviato l'ultima volta, trovo che il modo più semplice sia il seguente:
0 0 * * * touch /path/cron.start; /path/exec.sh; touch /path/cron.end
Questo creerà un file /path/cron.start
con un timestamp che è l'ora di inizio. Al termine del lavoro, il file /path/cron.end
avrà il timestamp al termine del cron. Quindi un semplice ls -lrt /path/cron.{start,end}
ti dirà quando il lavoro è iniziato e se è ancora in esecuzione (l'ordine ti dirà se è ancora in esecuzione).
per verificare se cron sta effettivamente eseguendo qualcosa in questo momento (funziona su Ubuntu)
pstree -apl `pidof cron`
e otterrai
2775,cron # your pid (2775) will be different to mine :-)
o un output ad albero con tutti i processi figli che cron sta eseguendo (potrebbe non nominarli se non hai privilegi sufficienti) e come dice Hamoriz i log sono in /var/log/syslog così
grep CRON /var/log/syslog
ti darà i log solo per cron
Vorrei anche vedere se qualcuno dei miei cron job è attualmente in esecuzione ?
ps aux |grep "path/exec.sh"
a che ora è stato eseguito il mio cron job ?
Il registro cron mostra solo quando inizia l'attività da crond, non registra quando finisce. Devi inserirlo nella tua attività o incorporare la tua attività in uno script con l'ora di controllo di inizio e fine.
se è già stato eseguito?
cat /path/logs/messages o /path/logs/file quando il tuo sistema inserisce i log di crond (questo dipende dalle impostazioni della tua distribuzione o dal tuo computer)