Saya biasa crontab -e
menambahkan baris berikut ke crontab saya:
* * * * * echo hi >> /home/myusername/test
Namun, saya tidak melihat bahwa file tes ditulis untuk. Apakah ini masalah izin, atau apakah crontab tidak berfungsi dengan benar?
Saya melihat bahwa proses cron sedang berjalan. Bagaimana saya bisa men-debug ini?
Sunting - Tanya Ubuntu punya pertanyaan bagus tentang crontab , sayangnya itu masih tidak membantu saya.
Sunting 2 - Hmm, sepertinya file pengujian saya memiliki 214 baris, yang berarti selama 214 menit terakhir telah ditulis untuk setiap menit. Saya tidak yakin apa masalahnya, tapi ternyata sudah hilang.
fcron
melakukan ini juga.Sudahkah Anda menambahkan baris kosong setelah cronjob Anda ?
sumber
Saya memiliki masalah yang sama - crontab yang bekerja tiba-tiba berhenti setelah saya menambahkan entri baru pada akhirnya. Ternyata saya lupa meletakkan baris baru setelah baris terakhir itu.
Saya mengetahuinya dengan mengeluarkan perintah
dan output menunjukkan masalah:
Menambahkan baris baru dan menyimpan menyelesaikan masalah.
sumber
Kedengarannya seperti ini sudah diperbaiki. Lain kali, coba masuk juga ke STDERR. Berikut ini hanya akan masuk ke STDOUT, bukan STDERR:
Coba pastikan juga ada klausa eksplisit untuk STDERR. Jika tidak, STDERR dapat dikirim melalui email ke pengguna (dengan asumsi bahwa email itu berfungsi) atau mungkin tidak menuju ke mana-mana, tergantung pada bagaimana Cron dikonfigurasi.
Preferensi saya adalah mengirim output cronjob ke syslog. Dengan begitu saya mengambil keuntungan dari infrastruktur syslog yang ada (syslog terpusat, Splunk, rotasi log sudah didukung, mudah untuk membandingkan pesan di / var / log / pesan & / var / log / cronjob, dll), dan saya tidak mengirim spam ke sysadmin (saya) dengan email yang tidak perlu.
sumber
Bagi saya masalahnya adalah skrip tidak dapat dieksekusi. Saya memiliki pengaturan crontab -e seperti ini
Dan file myscript tidak dapat dieksekusi jadi saya berlari
Segera saya mulai melihat output seperti yang diharapkan.
sumber
Baris cron Anda berfungsi dengan baik di komputer saya ketika saya berubah
myusernae
menjadiphunehehe
. Ada beberapa cara untuk mencari tahu apa yang salah dengan sistem Anda.Cron biasanya mengirim email ke pengguna ketika ada sesuatu yang salah. Jika Anda melihat pesan "You have mail" gunakan klien email untuk memeriksa kotak masuk Anda . Atau, periksa di direktori home Anda, mungkin ada file bernama di
dead.letter
sana.Anda dapat memeriksa
/var/log/
entri yang berkaitan dengan cron. Di komputer saya file log di/var/log/cron/current
(memerlukan akses root).Jika Anda memiliki akses root, Anda dapat menghentikan daemon cron dan memulainya dalam mode debug. Misalnya saya akan menggunakan (ubah
fcron
ke nama daemon Anda):sumber
ps -ef | grep cron
dan Anda akan melihat garis untuk cron Anda. Periksa halaman manual cron untuk melihat tanda untuk debug. Kemungkinan Anda menggunakan Vixie Cron , dalam hal ini bendera debug adalah-x
. Bunuh proses cron dan mulai lagi dengan bendera tambahan.Kemungkinan besar, ketika cron gagal, itu menghasilkan email ke id pengguna dari pekerjaan cron di komputer itu. Jika Anda tidak memiliki MTA yang berfungsi di komputer Anda, atau Anda tidak membaca atau meneruskan surat itu di tempat lain, Anda tidak akan melihat pesan itu, bahkan jika MTA berfungsi.
Cara yang baik untuk mendapatkan kesalahan crontab Anda melalui surat adalah dengan membuat crontab Anda terlihat seperti ini:
Jelas, gunakan alamat email Anda daripada [email protected]. Ini memberi tahu cron untuk mengirim kesalahan ke alamat email Anda dan bukan ke akun lokal. Secara khusus, ini berguna jika Anda memiliki root crontab (atau fragmen crontab di /etc/cron.d) yang ingin Anda kirimkan hasilnya kepada Anda, Anda dapat menghindari spam kotak surat root atau alamat penerusan root.
sumber
Saya kira satu alasan untuk hal ini adalah direktori / home / dienkripsi dan ketika pengguna logout cron tidak dapat melakukan apa pun di direktori tersebut.
lihat: https://stackoverflow.com/a/40354269/1279002
sumber