Cron Job Çalışmıyor mu?


24

Bu gibi görünen bir crontab dosyam var:

* * * * * /home/abliskovs/update/update.sh

Bununla birlikte, iş günlüğünün çalışmakta olduğuna dair kanıtlar için sistem günlüğünü kontrol ettiğimde, çalıştığını gösteren hiçbir şey yoktur. Çalışıp çalışmadığını nasıl kontrol edebilirim?

crontab -l aşağıdakileri çıkarır:

* * * * * /home/abliskovs/update/update.sh


Tamam, bunu yaptım.
Alex Bliskovsky

Belki aptal bir soru, ama daha önce başıma geldi, bu yüzden yine de soracağım. Cron cini uygulamasının gerçekten çalıştığından emin olun! : P İkinci tahmin izinler, cronjob çalıştıran kullanıcı tarafından çalıştırılabilir olduğundan emin olun.
Mattias Ahnberg

Yanıtlar:


21

Crontab girişinizin sonuna bir >> / tmp / testlog.log ekleyin (çıktıyı araştırabileceğiniz veya çalışıp çalışmadığını kontrol edebileceğiniz bir dosyaya yönlendirmek için, ek olarak 2> & 1 hata konsolundan çıktı içerecektir)

Örnek

0 * * * * /home/abliskovs/update/update.sh 2> & 1 /tmp/testlog.log

Ayrıca, aşağıdakilerden emin olun:

  • Cronjobs'u doğru şekilde ekleyin. Eğer kendi hesabınızdaki crontab'ı kullandıysanız, scriptler kullanıcınızla birlikte çalıştırılır (ve bu nedenle crontab girişi bir alandan daha azdır - onu çalıştıran kullanıcı olduğu bilinir). Yukarıdaki snip komutunu /etc/cron.d dizinine kopyaladıysanız, bir kullanıcı belirtmediğinizden (veya "bash" adında bir kullanıcı bulamadığı için) başarısız olur.
  • Komut dosyasının çalıştırılabilir olduğundan emin olun, aksi halde çalıştırmaz.
  • Cron jobs sudo servisi yeniden yükle veya cron servisini yeniden başlatsudo /etc/init.d/cron restart

Bir dosyayı çalıştırılabilir hale getirme

Dosyanızı çalıştırılabilir kılmanın çeşitli yolları

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh

3

Komut dosyasının çalıştırılabilir olduğundan emin olun {chmod 755} aksi halde dosyayı çalıştırmaz


2
Bir dosyayı çalıştırılabilir hale getirmek için, şunları da çalıştırabilirsinizchmod +x filename
Stefano Palazzo

0

Kabuk betiği update.shmuhtemelen hatalar içeriyor, örneğin komut bulunamadığından çalıştırılamayan bazı komutlar. Bu durumda PATH değişkeninde komutunuza yol eklemek veya doğrudan komutunuzun önüne eklemek yardımcı olabilir. Ayrıca, MAILTO e-posta adresini belirlemeye yardımcı olur, Cronjobs'un çalıştırılmasından kaynaklanan e-postalar bu adrese gönderilir.

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

Hatalar için yerel posta kutusunu mailve syslog dosyasını da kontrol edebilirsiniz /var/log/syslog. Ayrıca, cronjobs'un neden çalışmayabileceğini bu soruya bakın .


0

Aynı sorunu yaşadım ve bunun nedeni benim için crontab'ın çalışmamasıydı çünkü buna izin yoktu. Dosyayı değiştirdim ve /tmpt/output.log dosyasına koydum

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

Bu sizin için işe yararsa bana bildirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.