Saya mencoba memecahkan masalah mengapa tugas cron saya terkadang tidak berfungsi. Di mana cron menyimpan file log secara default? Apakah itu / var / log / syslog?
Saya telah melihat file itu dan kosong. Apakah saya perlu mengatur sesuatu?
Secara default, log cron disimpan di / var / log / syslog. Itu tergantung pada konfigurasi rsyslogd. Anda dapat mengubahnya:
Buka rsyslog config
cd /etc/rsyslog.d/
sudo nano 50-default.conf
Baris tidak disukai:
# cron. * /var/log/cron.log
Simpan file dan mulai ulang rsyslog
sudo restart layanan rsyslog
Mulai ulang daemon cron Anda untuk mendapatkan pesan dari file baru
sudo restart layanan cron
Ketika cron
tidak berfungsi, itu akan mengirimkan email kepada pengguna root
. Satu-satunya masalah adalah: Anda tidak memiliki perangkat lunak untuk mengirim / menyimpan surat di kotak surat.
Tapi jangan takut, Postfix
ada di sini!
sudo apt-get pembaruan sudo apt-get install postfix heirloom-mailx
Ketika menginstal postfix
, itu akan menanyakan kepada Anda bagaimana Anda ingin mengaturnya. Pada layar pertama, pilih local only
dan lanjutkan dengan default untuk yang lainnya.
Sekarang, menggunakan editor favorit Anda, edit /etc/aliases
. Ini akan terlihat seperti ini di awal:
# Lihat man 5 alias untuk format kepala kantor pos: root
Artinya, semua surat yang dikirim ke postnaster
sekarang juga akan dikirim root
. Dalam hal ini, kami ingin semua surat yang dikirim root
(untuk surat cron dan surat sistem lainnya) dikirim ke username
(kami).
Jadi, edit /etc/aliases
agar terlihat seperti:
# Lihat man 5 alias untuk format kepala kantor pos: root root: norman
(Ganti norman
dengan nama pengguna Anda jelas. Kecuali Anda memiliki nama / nama pengguna yang sama dengan saya. :))
Setelah itu semua dikatakan dan dilakukan, jalankan perintah berikut untuk push
perubahan:
sudo newaliases
Sekarang, setelah menjalankan itu:
sudo dpkg-konfigurasi ulang postfix
Anda akan mendapatkan layar yang sama dengan yang Anda miliki saat memasang postfix
. Jalankan melalui default ( Local Only
, dll.). Saat Anda masuk ke bagian ketika meminta root dan alias postmaster, pastikan itu sama dengan yang Anda tambahkan di /etc/aliases
atas. Kemudian, lanjutkan menjalankan melalui default.
Setelah selesai, jalankan perintah berikut untuk memulai kembali postfix
dan mulai berjalan!
sudo service postfix restart
Sekarang, jika cron memiliki kesalahan, itu akan dikirimkan kepada Anda. Tapi, Anda mungkin bertanya-tanya, bagaimana cara saya memeriksa surat (lokal) saya?
Untuk melakukannya, jalankan perintah:
surat
Sesederhana itu. Jika tidak ada surat, itu akan mengatakan No mail for <username>
. Kalau tidak, Anda akan mendapatkan antarmuka terminal yang rapi untuk digunakan. Lihat halaman manual untuk informasi tentang cara berinteraksi dengan kotak masuk Anda.
Atau, jika Anda mau, Anda dapat mengakses halaman manual lokal Anda dengan menggunakan:
man mail
Dan sekarang, Anda selesai! :)
PS Anda harus membaca ini untuk mempelajari lebih lanjut tentang cron
masalah ini.
crond
mail pemilik pekerjaan, belum tentu root, jadi jika itu adalah pekerjaan Anda sendiri yang Anda instalcrontab -e
maka Anda mendapatkan email. Ini juga benar apakah pekerjaan itu "gagal" ... itu hanya mengirimi Anda transkrip dari output apa pun yang dimiliki pekerjaan itu.Saat berlari
mail
saya mendapat respons berikut:Sebaliknya saya menemukan kesalahan / surat yang disimpan di
/var/mail/root
sumber
Secara
/var/log/syslog
default.Tetapi dapat diatur untuk membuat cron.log terpisah, yang lebih berguna.
T&J ini menjelaskan proses:
16.04: Bagaimana cara membuat cron membuat cron.log dan memonitornya secara real time?
Juga dalam jawaban ini adalah instruksi untuk membuat
wcron
perintah yang menampilkannya hampir real-time. Selain itu, tautan ke jawaban lain,Bagaimana cara mengubah level log cron?
yang menunjukkan cara mengubah level log untuk memasukkan lebih dari sekedar permulaan pekerjaan - level 15 juga akan menunjukkan kesalahan dan waktu berakhir.
sumber