Masalah umum yang dihadapi oleh pengguna unix baru ketika menggunakan cron untuk meluncurkan skrip adalah cronjobs mereka tidak memiliki akses ke lingkungan yang sama dengan shell pengguna mereka. Jadi skrip yang dieksekusi di shell pengguna berfungsi dengan sempurna, tetapi gagal ketika diluncurkan dari cron. Penyebab nomor satu dalam kasus ini adalah variabel lingkungan $PATH shell Anda berbeda dengan variabel lingkungan shell cronjob.
Untuk menguji jalankan '/bin/echo $PATH > myShellPath'. Di cron jalankan '/bin/echo $PATH > myCronPath'. Bandingkan myShellPath dengan myCronPath.
Dalam contoh yang diberikan, skrip mengeksekusi echo, yang pada sistem CENTOS6 saya ditemukan di bawah/bin. Perintah echo ditemukan oleh shell dengan mencari file 'echo' di salah satu direktori yang terdaftar dalam variabel lingkungan $PATH. Jika variabel lingkungan $PATH cronjob Anda tidak menyertakan /bin, perintah echo akan gagal.
Jika ini masalahnya, solusi paling sederhana adalah dengan secara eksplisit mengatur jalur ke 'echo' di skrip Anda. Untuk melihat path lengkap sistem Anda untuk echo, ketik 'which echo' di shell Anda.
Contoh:
[countChocula@bozo ~]$ which echo
/bin/echo
Dalam hal ini Anda akan mengedit skrip dan mengganti 'echo' dengan '/bin/echo'. Lebih baik lagi, atur variabel $PATH dalam skrip Anda untuk memasukkan direktori tempat echo berada.
Untuk informasi lebih lanjut, telitilah "shell apa yang saya jalankan dan bagaimana variabel lingkungan saya diatur?", "shell apa yang digunakan cron dan bagaimana cara mengatur variabel lingkungan cron?", "bagaimana cara melihat variabel lingkungan cronjob saya?"
person
mcchiz
schedule
05.04.2014