Alasan paling sering saya melihat cron gagal dalam jadwal yang salah. Dibutuhkan latihan untuk menentukan pekerjaan yang dijadwalkan pukul 11:15 malam sebagai 15 23 * * *
ganti * * 11 15 *
atau 11 15 * * *
. Hari dalam seminggu untuk pekerjaan setelah tengah malam juga menjadi bingung MF adalah 2-6
setelah tengah malam, bukan 1-5
. Tanggal spesifik biasanya menjadi masalah karena kita jarang menggunakannya * * 3 1 *
bukan tanggal 3 Maret. Jika Anda tidak yakin, periksa jadwal cron Anda secara online di https://crontab.guru/ .
Jika pekerjaan Anda dengan platform berbeda menggunakan opsi yang tidak didukung seperti 2/3
dalam spesifikasi waktu juga dapat menyebabkan kegagalan. Ini adalah opsi yang sangat berguna tetapi tidak tersedia secara universal. Saya juga mengalami masalah dengan daftar seperti 1-5
atau 1,3,5
.
Menggunakan jalur yang tidak memenuhi syarat juga menyebabkan masalah. Path default biasanya /bin:/usr/bin
jadi hanya perintah standar yang akan berjalan. Direktori ini biasanya tidak memiliki perintah yang diinginkan. Ini juga mempengaruhi skrip yang menggunakan perintah non-standar. Variabel lingkungan lainnya juga bisa hilang.
Memukul crontab yang ada sepenuhnya telah menyebabkan masalah bagi saya. Saya sekarang memuat dari salinan file. Ini dapat dipulihkan dari crontab yang ada menggunakan crontab -l
jika akan musnah. Saya menyimpan salinan crontab di ~ / bin. Itu dikomentari sepanjang dan berakhir dengan garis # EOF
. Ini dimuat ulang setiap hari dari entri crontab seperti:
#! / usr / bin / crontab
# Muat ulang crontab ini
#
54 12 * * * $ {HOME} / bin / crontab
Perintah reload di atas bergantung pada crontab yang dapat dieksekusi dengan bang path menjalankan crontab. Beberapa sistem membutuhkan crontab yang sedang berjalan dalam perintah dan menentukan file. Jika direktori tersebut dibagi-pakai oleh jaringan, maka saya sering menggunakan crontab.$(hostname)
sebagai nama file. Ini pada akhirnya akan memperbaiki kasus di mana crontab yang salah dimuat pada server yang salah.
Menggunakan file menyediakan cadangan apa yang seharusnya crontab, dan memungkinkan pengeditan sementara (satu-satunya waktu saya gunakan crontab -e
) untuk mundur secara otomatis. Ada tajuk yang tersedia yang membantu mengatur parameter penjadwalan dengan benar. Saya telah menambahkan mereka ketika pengguna yang tidak berpengalaman akan mengedit crontab.
Jarang, saya telah menjalankan perintah yang membutuhkan input pengguna. Ini gagal di bawah crontab, meskipun beberapa akan bekerja dengan pengalihan input.
crontab -e
agar cron berlaku. Misalnya menggunakan vim saya mengedit file dan menggunakannya:w
untuk menulisnya tetapi pekerjaan tidak ditambahkan ke cron sampai saya berhenti juga. Jadi saya tidak akan melihat pekerjaan sampai setelah saya:q
juga.