Ik wil controleren of mijn cron job wordt uitgevoerd en op welk tijdstip. Ik geloof dat er een logboek is voor mijn sudo crontab -e
jobs, maar waar?
Ik heb op google gezocht en vond aanbevelingen om in /var/log
te kijken (waarin ik niets zie met 'cron' in de naam) en om het bestand /etc/syslog.conf
aan te passen, wat ik ook niet heb.
Op een standaard installatie worden de cron jobs gelogd naar
/var/log/syslog
Je kunt alleen de cron jobs in dat logbestand zien door
grep CRON /var/log/syslog
Als je niets herconfigureerd hebt, zullen de items daar in staan.
Je kunt een cron.log bestand maken dat alleen de CRON regels bevat die in syslog verschijnen. Merk op dat CRON taken nog steeds in syslog verschijnen als je de volgende aanwijzingen volgt.
Open het bestand
/etc/rsyslog.d/50-default.conf
Zoek de lijn die begint met:
#cron.*
verwijder het commentaar van die lijn, sla het bestand op, en herstart rsyslog:
sudo service rsyslog restart
Je zou nu hier een cron log bestand moeten zien:
/var/log/cron.log
Cron activiteit zal nu gelogd worden naar dit bestand (naast syslog).
Merk op dat je in cron.log entries zal zien voor wanneer cron scripts draaide in /etc/cron.hourly, cron.daily, enz. - b.v. iets als:
Apr 12 14:17:01 cd CRON[14368]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Je zal echter niet meer informatie zien over welke scripts werkelijk werden uitgevoerd in /etc/cron.daily of /etc/cron.hourly, tenzij die scripts uitvoer sturen naar de cron.log (of misschien naar een ander logbestand).
Als je wilt controleren of een crontab draait en er niet naar hoeft te zoeken in cron.log of syslog, maak dan een crontab die uitvoer doorstuurt naar een logbestand van je keuze - zoiets als:
01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1
Dit zal alle standaard uitvoer en fouten die geproduceerd worden door het script dat wordt uitgevoerd, omleiden naar het opgegeven logbestand.