Cron Job Not Running?

24

Saya memiliki file crontab yang terlihat seperti ini:

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

Namun ketika saya memeriksa syslog untuk bukti bahwa pekerjaan telah berjalan, tidak ada yang menunjukkan bahwa itu pernah berjalan. Bagaimana saya bisa memeriksa apakah itu berjalan?

crontab -l output sebagai berikut:

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

Alex Bliskovsky
sumber
OK, saya sudah melakukan itu.
Alex Bliskovsky
Mungkin pertanyaan bodoh, tapi itu terjadi pada saya sebelumnya jadi saya akan bertanya. Pastikan bahwa daemon cron benar-benar berjalan! : P Tebakan kedua adalah izin, pastikan itu dapat dieksekusi oleh pengguna yang menjalankan cronjob.
Mattias Ahnberg

Jawaban:

21

Tambahkan >> / tmp / testlog.log ke akhir entri crontab Anda (untuk mengarahkan ulang output ke file yang dapat Anda selidiki atau periksa apakah itu berjalan, selain itu 2> & 1 akan menyertakan output dari konsol kesalahan)

Contoh

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

Pastikan juga hal-hal berikut:

  • Tambahkan cronjobs dengan cara yang benar. jika Anda telah menggunakan crontab -e di dalam akun Anda sendiri, skrip dijalankan dengan pengguna Anda (dan karenanya entri crontab memiliki satu bidang lebih sedikit - pengguna untuk menjalankannya, seperti yang diketahui). Jika Anda hanya menyalin di atas dipotong ke /etc/cron.d, itu akan gagal karena Anda tidak menentukan pengguna (atau lebih tepatnya karena tidak menemukan pengguna bernama "bash").
  • Pastikan bahwa file skrip dapat dieksekusi, jika tidak file tersebut tidak akan dijalankan.
  • Muat ulang tugas cron sudo , memuat ulang layanan , atau memulai kembali layanan cronsudo /etc/init.d/cron restart

Bagaimana cara membuat file dapat dieksekusi?

Beberapa cara untuk membuat file Anda dapat dieksekusi

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

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

chmod a+x /home/abliskovs/update/update.sh
Md Mahbubur Rahman
sumber
3

Pastikan bahwa file skrip dapat dieksekusi {chmod 755} jika tidak, file itu tidak akan dijalankan

pengguna25
sumber
2
Untuk membuat file dapat dieksekusi, Anda juga dapat menjalankanchmod +x filename
Stefano Palazzo
0

Script shell update.shmungkin berisi kesalahan, misalnya beberapa perintah yang tidak dapat dieksekusi karena perintah tidak dapat ditemukan. Dalam hal ini mungkin membantu untuk menambahkan path ke perintah Anda dalam variabel PATH, atau menambahkannya di depan perintah Anda secara langsung. Ini juga membantu untuk menentukan alamat email MAILTO, email yang dihasilkan dari mengeksekusi Cronjobs dikirim ke alamat ini

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

Anda juga dapat memeriksa kotak surat lokal dengan maildan file syslog /var/log/sysloguntuk kesalahan. Lihat juga pertanyaan terkait ini mengapa cronjobs mungkin tidak berfungsi .

0x4a6f4672
sumber
0

Saya pernah mengalami masalah yang sama dan penyebabnya bagi saya adalah bahwa crontab tidak berjalan karena tidak memiliki izin untuk itu. Saya telah mengubah file dan memasukkannya ke /tmpt/output.log

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

Beri tahu saya jika ini cocok untuk Anda.

Kamaro Lambert
sumber