Pertanyaan Di mana cron / crontab log?


Saya ingin memverifikasi bahwa tugas cron saya sedang dijalankan dan pada jam berapa. Saya percaya ada log untuk saya sudo crontab -e pekerjaan, tetapi di mana?

Saya mencari di google dan menemukan rekomendasi untuk mencari tahu /var/log (di mana saya tidak melihat apa pun dengan 'cron' dalam nama) dan mengedit file /etc/syslog.conf yang saya juga tidak punya.


612
2017-08-11 12:06


asal




Jawaban:


Pada instalasi default, tugas cron akan dicatat

/var/log/syslog

Anda dapat melihat cron job saja di logfile itu dengan menjalankan

 grep CRON /var/log/syslog

Jika Anda belum mengkonfigurasi ulang apa pun, entri akan ada di sana.


720
2017-08-12 10:58



Jika tidak ada MTA yang diinstal, cron hanya membuang output pekerjaan. - Barry Kelly
Log cron dapat berada di file lain di /var/log/ direktori. Periksa cron.log atau yang setara. - Navigatron
ini tidak memberi saya output dari pekerjaan. itu hanya memberi pesan umum bahwa cron itu diproses. - chovy
pada AWS itu adalah / var / log / cron - tsukimi
@ Shadi kamu juga bisa grep -i CRON untuk mencari case-insensitive - nafg


Anda dapat membuat file cron.log hanya berisi entri CRON yang muncul di syslog. Perhatikan bahwa pekerjaan CRON masih akan muncul di syslog jika Anda mengikuti petunjuk berikut.

Buka file

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

Temukan garis yang dimulai dengan:

#cron.*

batalkan komentar baris itu, simpan file, dan restart rsyslog:

sudo service rsyslog restart

Anda sekarang harus melihat file log cron di sini:

/var/log/cron.log

Aktivitas Cron sekarang akan dicatat ke file ini (selain syslog).

Perhatikan bahwa di cron.log Anda akan melihat entri ketika cron menjalankan skrip di /etc/cron.hourly, cron.daily, dll. - mis. sesuatu seperti:

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

Namun, Anda tidak akan melihat lebih banyak informasi tentang skrip apa yang sebenarnya dijalankan di dalam /etc/cron.daily atau /etc/cron.hourly, kecuali skrip tersebut mengarahkan keluaran ke cron.log (atau mungkin ke beberapa file log lain).

Jika Anda ingin memverifikasi apakah crontab sedang berjalan dan tidak perlu mencarinya di cron.log atau syslog, buat crontab yang mengarahkan output ke file log pilihan Anda - sesuatu seperti:

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

Ini akan mengarahkan semua output standar dan kesalahan yang mungkin dihasilkan oleh skrip yang dijalankan ke file log yang ditentukan.


195
2018-04-13 01:36



Dengan pendapat saya, jawaban ini lebih baik di masa depan. Jadi file syslog Anda lebih jelas. - shgnInc
Untuk juga mengecualikan cron log dari syslog Anda dapat mengubah baris *.*;auth,authpriv.none -/var/log/syslog untuk *.*;auth,authpriv.none,cron.none -/var/log/syslog. - Koen.
Pada CentOS 6 kami, cron. * Didefinisikan di /etc/rsyslog.conf, sedangkan saya kosong di folder rsyslog.d. - Scott Chu
apa yang 2>&1 berdiri untuk ? - John Joe
@JohnJoe 2> & 1 digunakan untuk meneruskan stderr ke stdout, dengan cara ini Anda juga akan mendapatkan stderr ke file log. - Sampo Sarrala


Terkadang dapat bermanfaat untuk terus memantau, dalam hal ini:

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

67
2018-05-14 07:34



Nah, Anda mungkin ingin menggunakannya -F, yang akan mengikuti file di seluruh perubahan nama, sehingga ketika terpotong / dipindahkan ke, mis. /var/log/syslog.1.gz, Anda masih mengikuti arus /var/log/syslog mengajukan. Menurut dokumen pria, ini sama dengan berlari tail xxxx -f --retry - Momer


Anda juga dapat mengarahkan output cronjobs individu ke log mereka sendiri untuk keterbacaan yang lebih baik, Anda hanya perlu menambahkan output tanggal di suatu tempat.

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

24
2018-04-01 15:26



benar, tetapi jika baris ini gagal dijalankan karena kesalahan sintaks, tidak ada yang akan ditulis dalam log output yang ditentukan. - Raptor
Anda dapat menyelesaikan ini dengan menambahkan 2> & 1 setelah file log ditentukan. Ini juga merupakan praktik terbaik untuk menguji cronjobs Anda sebelum menambahkannya ke crontab, dan kemudian hadir untuk jadwal pertama untuk memastikan bahwa crontab diformat dengan benar. - Andrew Meyer


Ini adalah pertanyaan yang sangat lama, tetapi tidak ada jawaban yang memuaskan.

Pertama-tama, buatlah tugas cron Anda berjalan setiap menit, lalu jalankan cron sebagai non-daemon (sementara, hanya bunuh setiap crond yang mungkin sudah dimulai) dengan uji logging:

crond -nx test

Dan lihat log dari eksekusi program Anda mengalir melalui terminal Anda.


7
2018-06-17 17:42



Tidak berjalan pada 14.04 - No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main) - G-.


ada di /var/log/syslog secara default.

Tetapi dapat diatur untuk membuat cron.log terpisah, yang lebih berguna.

T & J ini menjelaskan prosesnya:

16.04: Bagaimana saya membuat cron membuat cron.log dan memonitornya secara real time?

Juga dalam jawaban ini adalah instruksi untuk membuat wcron perintah yang menampilkannya mendekati real-time. Selain itu, tautan ini terhubung dengan jawaban lain,

Bagaimana cara mengubah level cron log?

yang menunjukkan cara mengubah tingkat log untuk menyertakan lebih dari sekadar permulaan pekerjaan - level 15 akan menampilkan kesalahan dan waktu akhir, juga.


5
2017-10-22 06:40





Anda bisa mengarahkan output cron ke file tmp

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

Kesalahan dan output normal, keduanya akan dialihkan ke file yang sama


1
2018-05-07 11:27