Vraag Waar is het cron / crontab-logboek?


Ik wil verifiëren dat mijn cron-taak wordt uitgevoerd en wanneer. Ik geloof dat er een logboek voor mij is sudo crontab -e banen, maar waar?

Ik heb op Google gezocht en aanbevelingen gevonden om naar binnen te kijken /var/log (waarin ik niets zie met 'cron' in de naam) en om het bestand te bewerken /etc/syslog.conf die ik ook niet heb.


612
2017-08-11 12:06


oorsprong




antwoorden:


Bij een standaardinstallatie worden de cron-taken geregistreerd

/var/log/syslog

U kunt alleen cron-taken in dat logbestand zien door te draaien

 grep CRON /var/log/syslog

Als u niets hebt geconfigureerd, staan ​​de vermeldingen daar.


720
2017-08-12 10:58



Als er geen MTA is geïnstalleerd, gooit cron de taakoutput gewoon weg. - Barry Kelly
Het cron-logboek bevindt zich mogelijk in een ander bestand in de /var/log/ directory. Controleer op cron.log of gelijkwaardig. - Navigatron
dit geeft me geen output van de baan. het geeft gewoon een generiek bericht dat de cron is verwerkt. - chovy
op AWS was het / var / log / cron - tsukimi
@shadi zou jij ook kunnen grep -i CRON om niet-hoofdlettergevoelig te zoeken - nafg


U kunt een cron.log-bestand maken dat alleen de CRON-vermeldingen bevat die worden weergegeven in syslog. Merk op dat CRON-taken nog steeds verschijnen in syslog als u de volgende aanwijzingen volgt.

Open het bestand

/etc/rsyslog.d/50-default.conf

Zoek de regel die begint met:

#cron.*

uncomment die regel, sla het bestand op en start rsyslog opnieuw:

sudo service rsyslog restart

U zou nu een cron-logbestand moeten zien:

/var/log/cron.log

Cron-activiteit wordt nu in dit bestand vastgelegd (naast syslog).

Let op: in cron.log ziet u vermeldingen voor wanneer cron scripts draaide in /etc/cron.hourly, cron.daily, enz. - bijv. zoiets als:

Apr 12 14:17:01 cd CRON[14368]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

U zult echter niet meer informatie zien over welke scripts feitelijk in /etc/cron.daily of /etc/cron.hourly werden uitgevoerd, tenzij die scripts uitvoer naar de cron.log sturen (of misschien naar een ander logbestand).

Als u wilt controleren of een crontab actief is en niet hoeft te zoeken in cron.log of syslog, maak dan een crontab die de uitvoer omleidt naar een logbestand van uw keuze - zoiets als:

01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1

Hierdoor worden alle standaarduitvoer en fouten omgeleid die mogelijk worden geproduceerd door het script dat wordt uitgevoerd naar het opgegeven logboekbestand.


195
2018-04-13 01:36



Naar mijn mening is dit antwoord in de toekomst beter. Dus je syslog-bestand is duidelijker. - shgnInc
Om ook het cron-logboek van syslog uit te sluiten, kunt u de regel wijzigen *.*;auth,authpriv.none -/var/log/syslog naar *.*;auth,authpriv.none,cron.none -/var/log/syslog. - Koen.
Op onze CentOS 6, cron. * Gedefinieerd in /etc/rsyslog.conf, terwijl i leeg is in de map rsyslog.d. - Scott Chu
wat is 2>&1 staan ​​voor ? - John Joe
@JohnJoe 2> & 1 wordt gebruikt om stderr door te sturen naar stdout, op deze manier krijg je ook een stderr-bestand om te loggen. - Sampo Sarrala


Soms kan het nuttig zijn om het voortdurend te bewaken, in dat geval:

tail -f /var/log/syslog | grep CRON

67
2018-05-14 07:34



Nou, je wilt waarschijnlijk gebruiken -F, die het bestand zal volgen over naamwijzigingen, zodat wanneer het wordt afgekapt / verplaatst naar, bijvoorbeeld /var/log/syslog.1.gz, je volgt nog steeds de stroom /var/log/syslog het dossier. Per de man-documenten is dit hetzelfde als lopen tail xxxx -f --retry - Momer


U kunt de uitvoer van de individuele cronjobs ook naar hun eigen logboeken sturen voor een betere leesbaarheid, u hoeft alleen de uitvoer van de datum ergens toe te voegen.

 0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1

24
2018-04-01 15:26



true, maar als deze regel niet kan worden uitgevoerd vanwege de syntaxisfout, wordt er niets in het opgegeven uitvoerlogboek geschreven. - Raptor
U kunt dit oplossen door 2> & 1 toe te voegen nadat het logbestand is opgegeven. Het is ook de beste methode om uw cronjobs te testen voordat u ze toevoegt aan de crontab en vervolgens aanwezig te zijn voor de eerste geplande run om te zorgen dat de crontab correct is opgemaakt. - Andrew Meyer


Dit is een heel oude vraag, maar geen van deze antwoorden lijkt bevredigend.

Maak eerst uw cron-taak elke minuut en voer vervolgens cron uit als niet-daemon (tijdelijk, stop gewoon elk crond dat al is gestart) met testregistratie:

crond -nx test

En zie het logboek van uw programma-uitvoering door uw terminal stromen.


7
2018-06-17 17:42



Werkt niet op 14.04 - No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main) - G-.


Het is in /var/log/syslog standaard.

Maar het kan worden ingesteld om een ​​aparte cron.log te maken, wat nuttiger is.

Deze Q & A beschrijft het proces:

16.04: Hoe zorg ik ervoor dat cron cron.log maakt en in realtime bewaakt?

In dit antwoord zijn ook de instructies voor het maken van een wcron commando dat aangeeft dat het bijna realtime is. Plus, het linkt naar een ander antwoord,

Hoe verander ik het cron-logniveau?

die laat zien hoe het logniveau kan worden gewijzigd om meer dan alleen het begin van taken te bevatten - niveau 15 toont ook fouten en eindtijd.


5
2017-10-22 06:40





U kunt de uitvoer van cron omleiden naar een tmp-bestand

Zoals: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> & 1

Fout en normale uitvoer, beide worden doorgestuurd naar hetzelfde bestand


1
2018-05-07 11:27