Si vous souhaitez simplement savoir si votre tâche cron est en cours d'exécution et quand elle a démarré pour la dernière fois, je trouve la méthode la plus simple :
0 0 * * * touch /path/cron.start; /path/exec.sh; touch /path/cron.end
Cela créera un fichier /path/cron.start
avec un horodatage qui est l'heure de début. Lorsque le travail est terminé, le fichier /path/cron.end
aura l'horodatage à la fin du cron. Donc un simple ls -lrt /path/cron.{start,end}
vous dira quand le travail a commencé et s'il est toujours en cours d'exécution (la commande vous dira s'il est toujours en cours d'exécution).
pour vérifier si cron exécute réellement quelque chose en ce moment (fonctionne sur ubuntu)
pstree -apl `pidof cron`
et vous obtiendrez soit
2775,cron # your pid (2775) will be different to mine :-)
ou une sortie arborescente avec tous les processus enfants que cron exécute (il peut ne pas les nommer si vous n'avez pas les privilèges suffisants) et comme le dit Hamoriz, les journaux sont dans /var/log/syslog donc
grep CRON /var/log/syslog
vous obtiendra les journaux juste pour cron
J'aimerais aussi voir si l'une de mes tâches cron est en cours d'exécution en ce moment ?
ps aux |grep "path/exec.sh"
à quelle heure ma tâche cron a été exécutée ?
Le journal Cron ne s'affiche que lorsque la tâche démarre après crond, et non à la fin. Vous devez mettre ceci sur votre tâche ou intégrer votre tâche dans un seul script avec un contrôle de l'heure de début et de fin.
s'il s'est déjà exécuté ?
cat /path/logs/messages ou /path/logs/file lorsque votre système met les logs de crond (cela dépend de vos paramètres de distribution ou de votre ordinateur)