Domanda Dov'è il registro cron / crontab?


Voglio verificare che il mio cron job sia in esecuzione e a che ora. Credo che ci sia un registro per il mio sudo crontab -e lavori, ma dove?

Ho cercato su Google e ho trovato consigli per cercare /var/log (in cui non vedo nulla con 'cron' nel nome) e per modificare il file /etc/syslog.conf che anch'io non ho.


612
2017-08-11 12:06


origine




risposte:


In un'installazione predefinita i processi cron vengono registrati

/var/log/syslog

È possibile visualizzare solo i lavori cron nel file di registro in esecuzione

 grep CRON /var/log/syslog

Se non hai riconfigurato nulla, le voci saranno lì.


720
2017-08-12 10:58



Se non è installato alcun MTA, cron rilascia semplicemente l'output del lavoro. - Barry Kelly
Il registro cron potrebbe trovarsi in un altro file nel /var/log/ directory. Controlla cron.log o equivalente. - Navigatron
questo non mi dà risultati dal lavoro. dà solo un messaggio generico che il cron è stato elaborato. - chovy
su AWS era / var / log / cron - tsukimi
@shadi potresti anche grep -i CRON per cercare senza distinzione tra maiuscole e minuscole - nafg


È possibile creare un file cron.log per contenere solo le voci CRON visualizzate in syslog. Nota che i lavori CRON continueranno a essere visualizzati in syslog se segui le seguenti istruzioni.

Apri il file

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

Trova la linea che inizia con:

#cron.*

decommentare tale riga, salvare il file e riavviare rsyslog:

sudo service rsyslog restart

Ora dovresti vedere un file di registro di cron qui:

/var/log/cron.log

L'attività cron verrà ora registrata su questo file (oltre a syslog).

Nota che in cron.log vedrai le voci per quando cron ha eseguito gli script in /etc/cron.hourly, cron.daily, ecc. - ad es. qualcosa di simile a:

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

Tuttavia, non vedrete più informazioni su quali script sono stati effettivamente eseguiti in /etc/cron.daily o /etc/cron.hourly, a meno che quegli script non indirizzino l'output al cron.log (o forse ad un altro file di log).

Se vuoi verificare se un crontab è in esecuzione e non devi cercarlo in cron.log o syslog, crea un crontab che reindirizza l'output a un file di log di tua scelta - qualcosa del tipo:

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

Questo reindirizzerà tutti gli output standard e gli errori che potrebbero essere generati dallo script eseguito nel file di log specificato.


195
2018-04-13 01:36



Con la mia opinione, questa risposta è migliore in futuro. Quindi il tuo file syslog è più chiaro. - shgnInc
Per escludere anche il registro cron da syslog è possibile modificare la linea *.*;auth,authpriv.none -/var/log/syslog a *.*;auth,authpriv.none,cron.none -/var/log/syslog. - Koen.
Sul nostro CentOS 6, cron. * Definito in /etc/rsyslog.conf, mentre io sono vuoto nella cartella rsyslog.d. - Scott Chu
cosa è 2>&1 stare per? - John Joe
@JohnJoe 2> & 1 è usato per inoltrare stderr a stdout, in questo modo otterrai anche stderr per registrare il file. - Sampo Sarrala


A volte può essere utile monitorarlo continuamente, in tal caso:

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

67
2018-05-14 07:34



Beh, probabilmente lo vuoi usare -F, che seguirà il file attraverso le modifiche del nome, in modo che quando viene troncato / spostato, ad es. /var/log/syslog.1.gz, stai ancora seguendo la corrente /var/log/syslog file. Secondo l'uomo doc, questo è lo stesso di quello in esecuzione tail xxxx -f --retry - Momer


È anche possibile indirizzare l'output dei singoli cronjob ai propri registri per una migliore leggibilità, sarà sufficiente aggiungere l'output della data da qualche parte.

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

24
2018-04-01 15:26



true, ma se questa riga non viene eseguita a causa di un errore di sintassi, nel log di output specificato non verrà scritto nulla. - Raptor
Puoi risolvere questo problema aggiungendo 2> & 1 dopo che il file di registro è stato specificato. È inoltre consigliabile testare i cronjobs prima di aggiungerli a crontab e quindi essere presenti per la prima esecuzione pianificata per assicurarsi che il crontab sia formattato correttamente. - Andrew Meyer


Questa è una domanda molto vecchia, ma nessuna di queste risposte sembra soddisfacente.

Prima di tutto fai in modo che il tuo cron venga eseguito ogni minuto, quindi esegui cron come non-demone (temporaneamente, uccidi qualsiasi crond che potrebbe essere già stato avviato) con la registrazione del test:

crond -nx test

E vedi il log della tua esecuzione del programma che scorre attraverso il tuo terminale.


7
2018-06-17 17:42



Non funziona il 14.04 - No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main) - G-.


È in /var/log/syslog per impostazione predefinita.

Ma può essere impostato per creare un cron.log separato, che è più utile.

Questa sessione di domande e risposte descrive il processo:

16.04: Come posso creare cron cronlog e monitorarlo in tempo reale?

Anche in questa risposta ci sono le istruzioni per creare un wcron comando che lo mostra è quasi in tempo reale. Inoltre, si collega ad un'altra risposta,

Come cambiare il livello del registro cron?

che mostra come cambiare il livello del registro per includere più che l'inizio dei lavori - il livello 15 mostrerà anche gli errori e l'ora di fine.


5
2017-10-22 06:40





È possibile reindirizzare l'output di cron in un file tmp

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

Errore e output normale, entrambi verranno reindirizzati allo stesso file


1
2018-05-07 11:27