Haluan tarkistaa, että cron-tehtäväni suoritetaan ja mihin aikaan. Uskon, että sudo crontab -e
-työni loki on olemassa, mutta missä?
Etsin googlesta ja löysin suosituksia etsiä /var/log
(jossa en näe mitään, jonka nimessä olisi 'cron') ja muokata tiedostoa /etc/syslog.conf
, jota minulla ei myöskään ole.
Oletusasennuksessa cron-työt kirjautuvat osoitteeseen
/var/log/syslog
Voit nähdä vain cron-työt tuossa lokitiedostossa ajamalla komennon
grep CRON /var/log/syslog
Jos et ole konfiguroinut mitään uudelleen, merkinnät ovat siellä.
Voit luoda cron.log-tiedoston, joka sisältää vain syslogissa näkyvät CRON-merkinnät. Huomaa, että CRON-tehtävät näkyvät edelleen syslogissa, jos noudatat seuraavia ohjeita.
Avaa tiedosto
/etc/rsyslog.d/50-default.conf
Etsi rivi, joka alkaa:
#cron.*
poista kommentti kyseiseltä riviltä, tallenna tiedosto ja käynnistä rsyslog uudelleen:
sudo service rsyslog restart
Sinun pitäisi nyt nähdä cron-lokitiedosto tässä:
/var/log/cron.log
Cron-toiminta kirjataan nyt tähän tiedostoon (syslogin lisäksi).
Huomaa, että cron.log-tiedostossa näet merkinnät siitä, milloin cron ajoi skriptejä /etc/cron.hourly, cron.daily jne. tiedostossa. - Esim:
Apr 12 14:17:01 cd CRON[14368]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Et kuitenkaan näe lisätietoja siitä, mitä skriptejä oikeastaan ajettiin /etc/cron.daily- tai /etc/cron.hourly-tiedoston sisällä, elleivät nämä skriptit suorita tulostusta cron.log-tiedostoon (tai ehkä johonkin muuhun lokitiedostoon).
Jos haluat tarkistaa, että crontab on käynnissä, eikä sinun tarvitse etsiä sitä cron.logista tai syslogista, luo crontab, joka ohjaa tulostuksen valitsemaasi lokitiedostoon - esimerkiksi seuraavasti:
01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1
Tämä ohjaa kaikki vakiotulosteet ja virheet, joita ajettava skripti saattaa tuottaa, määritettyyn lokitiedostoon.