Cron'u gördüğüm en sık neden yanlış belirtilen bir programda başarısız. Sanki 11:15 planlanan bir işi belirtmek için pratik ister 15 23 * * *
yerine * * 11 15 *
ya 11 15 * * *
. Haftanın günü, gece yarısından sonraki işler için de karıştı. MF 2-6
gece yarısından sonra değil 1-5
. Belirli tarihler genellikle bir problemdir, çünkü nadiren kullanırız * * 3 1 *
3 Mart değildir. Emin değilseniz, cron programlarınızı çevrimiçi olarak https://crontab.guru/ adresinden kontrol edin .
Farklı platformlarda çalışmanız durumunda 2/3
zaman şartnameleri gibi desteklenmeyen seçenekler kullanılıyorsa arızalara da neden olabilirsiniz. Bu çok kullanışlı bir seçenektir, ancak evrensel olarak mevcut değildir. Ayrıca, 1-5
ya da gibi listelerle ilgili sorunlara rastladım 1,3,5
.
Niteliksiz yolları kullanmak da sorunlara neden oldu. Varsayılan yol genellikle genellikle /bin:/usr/bin
standart komutlar çalışacak şekildedir. Bu dizinler genellikle istenen komuta sahip değildir. Bu, standart olmayan komutları kullanarak komut dosyalarını da etkiler. Diğer çevre değişkenleri de eksik olabilir.
Mevcut bir crontab'ı tamamen engellemek bana sorun çıkardı. Şimdi bir dosya kopyasından yüklüyorum. Bu, mevcut crontab'dan gizlenmişse kurtarılabilir crontab -l
. Crontab kopyasını ~ / bin olarak saklıyorum. Baştan sona yorumlanır ve çizgi ile biter # EOF
. Bu, aşağıdaki gibi bir crontab girişinden günlük olarak yeniden yüklenir:
#! / Usr / bin / crontab
# Bu crontab'ı yeniden yükle
#
54 12 * * * $ {HOME} / bin / crontab
Yukarıdaki yeniden yükleme komutu, crontab'ı çalıştıran bir patlama yolu olan yürütülebilir bir crontab'a dayanır. Bazı sistemler komutta crontab'ın çalışmasını ve dosyayı belirtmesini gerektirir. Dizin ağ paylaşımlıysa, genellikle crontab.$(hostname)
dosyanın adı olarak kullanırım . Bu sonuçta yanlış crontab'ın yanlış sunucuya yüklendiği durumları düzeltir.
Dosyayı kullanmak, crontab'ın ne olması gerektiğinin bir yedeğini sağlar ve geçici düzenlemelerin (kullandığım tek zaman crontab -e
) otomatik olarak yedeklenmesini sağlar. Çizelgeleme parametrelerini doğru almanıza yardımcı olan başlıklar vardır. Deneyimsiz kullanıcılar bir crontab düzenlerken, bunları ekledim.
Nadiren kullanıcı girişi gerektiren komutlarla karşılaştım. Bunlar crontab altında başarısız olur, ancak bazıları giriş yönlendirmesiyle çalışacaktır.
crontab -e
. Örneğin, vim kullanarak dosyayı düzenlerim ve:w
yazmak için kullanırım , ancak istifa edene kadar iş cron'a eklenmez. Bu yüzden ben de işi sonrasına kadar görmeyeceğim:q
.