Saya telah mengkonfigurasi file crontab pengguna sebagai berikut:
*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh
Tapi itu tidak akan dieksekusi. Saya menunggu, misalnya, 10-15 menit. Mengapa?
Perintah auto-update.sh berjalan dengan mudah jika dijalankan secara manual. Bagaimana saya bisa memecah rantai eksekusi dan menjalankan skrip saya dari cron?
KeepAlive
danQueueDirectories
item).Jawaban:
Lingkungan tempat cron menjalankan sedikit berbeda dari shell interaktif; kemungkinan skrip berjalan, tetapi tidak berhasil. Salah satu perbedaan terbesar adalah bahwa untuk pekerjaan cron, PATH default hanya "/ usr / bin: / bin", jadi jika Anda menggunakan perintah yang tidak ada di / usr / bin atau / bin, mereka tidak akan ditemukan kecuali skrip Anda menetapkan PATH-nya sendiri, atau menyediakan jalur eksplisit untuk perintah. Perbedaan besar lainnya adalah tidak terhubung ke sesi interaktif, jadi jika ia mencoba melakukan sesuatu yang interaktif (baca dari terminal, dll) itu akan gagal. Coba ubah entri cron ke:
... dan lihat apakah ada informasi informatif yang muncul di log.
sumber
ps -ax | grep [c]ron
dan melihat apakah ia mencantumkan daemon cron (/ usr / sbin / cron) berjalan. Jika ya, coba uji pencatat bmike. Dalam kasus apa pun, periksa log (/var/log/system.log dan item "Semua Pesan" di utilitas Konsol) dan lihat apakah ada yang tampak relevan.Sulit untuk mengatakannya, tetapi bagaimana jika Anda menambahkan tugas cron kedua untuk dieksekusi setiap 5 menit atau lebih dan membuatnya memanggil beberapa alat yang dibangun sistem yang mencatat pesan ke system.log?
Dengan begitu Anda akan tahu bahwa cron berjalan untuk pengguna yang dimaksud dan dapat fokus pada memulai cron atau memperbaiki skrip Anda sehingga berjalan di lingkungan cron yang terbatas. (Anda dapat melihat jam dinding dan memilih beberapa kali yang akan segera hadir atau bahkan beberapa menit berikutnya - mis. Pengeditan pada 12:34 masukkan 35,36,37,38 untuk menit-menit berjalan dan menyimpan file cron .)
sumber
Sudah lama Anda mengajukan pertanyaan ini, tetapi tampaknya tidak ada solusi yang muncul di utas ini.
Bergantung pada cara Anda membuat crontab-pengguna, mungkin perlu menjalankan ini setelah mengeditnya:
Untuk melihat apakah crontab baru (juga setelah memodifikasinya) telah diaktifkan, tanyakan:
sumber
Saya memiliki masalah yang sama. Anda perlu menambahkan path ke skrip bash Anda:
sumber
Saya memiliki masalah yang sama. Itu hilang setelah saya menambahkan baris baru setelah pekerjaan saya di file crontab saya (saya n00b total crontab, jadi saya tidak tahu apakah perilaku ini diketahui secara luas atau tidak).
sumber