Pokud vás jen zajímá, zda váš cronjob právě běží a kdy naposledy začal, pak najdu následující nejjednodušší způsob:
0 0 * * * touch /path/cron.start; /path/exec.sh; touch /path/cron.end
Tím se vytvoří soubor /path/cron.start
s časovým razítkem, což je čas zahájení. Po dokončení úlohy se zobrazí soubor /path/cron.end
bude mít časové razítko, když cron skončí. Takže jednoduchý ls -lrt /path/cron.{start,end}
vám sdělí, kdy úloha začala a zda stále běží (příkaz vám řekne, zda stále běží).
zkontrolovat, zda cron v tuto chvíli skutečně něco spouští (funguje na ubuntu)
pstree -apl `pidof cron`
a buď dostanete
2775,cron # your pid (2775) will be different to mine :-)
nebo stromový výstup se všemi podřízenými procesy, které cron běží (nemusí je pojmenovat, pokud nemáte dostatečná oprávnění) a jak říká Hamoriz, protokoly jsou v /var/log/syslog tak
grep CRON /var/log/syslog
získáte protokoly jen pro cron
Také bych rád viděl, jestli zrovna běží některá z mých úloh cron ?
ps aux |grep "path/exec.sh"
v kolik hodin běžela moje úloha cron?
Protokol cronu se zobrazí pouze při spuštění úlohy mimo crond, nikoli protokol při ukončení. Musíte to dát na svůj úkol nebo vložit svůj úkol do jednoho skriptu s kontrolním časem začátku a konce.
pokud již byla spuštěna?
cat /path/logs/messages nebo /path/logs/file, když váš systém vložil protokoly crond (to závisí na vašem nastavení distribuce nebo vašem počítači)