Saya ingin mengatur crontab di Macbook Pro saya yang menjalankan Lion. Saya menjalankan yang biasa crontab -e
dan memberikan pekerjaan cepat untuk melihat apakah semuanya berfungsi ok ---
*/10 * * * * wget -O - -q -t 1 http://site.local/cron.php
10 menit kemudian saya melihat saya mendapat "surat" dari sistem yang menyatakan ---
/bin/sh: wget: command not found
Saya sudah menginstal wget karena saya dapat menjalankan program dari baris perintah
Bagaimana cara memperbaiki kesalahan ini? Apakah crontab saya atau .bash_profile
memerlukan shebang?
wget
? Cukup sediakan path lengkap di crontab Anda.Jawaban:
Mungkin ada hubungannya dengan lingkungan Anda yang berbeda ketika dijalankan sebagai cron job (yaitu
PATH
variabel lingkungan berbeda dari apa yang Anda gunakan dari terminal bash).Di terminal bash Anda, gunakan
which
untuk mencari tahu manawget
yang sedang digunakan:Kemudian gunakan path lengkap dalam pekerjaan cron:
Untuk pekerjaan cron, saya biasanya menjalankan skrip bash alih-alih menentukan perintah langsung di crontab. Ini sedikit lebih mudah untuk di-debug dan menjaga crontab sedikit lebih bersih.
sumber
/usr/bin/which: illegal option -- -
adalah apa yang saya dapatkan ketika saya berlariwhich
which wget
? Apakah kamu yakinMacBook-Pro:~ allan$ which wget
/usr/bin/which: illegal option -- -
usage: which [-as] program ...
Untuk mengetahui di mana perintah tertentu berada coba:
atau
Output harus menyediakan jalur yang dapat dieksekusi. Sebagai contoh:
kemudian ubah entri seperti:
Jika wget tidak muncul setelah melakukan yang ... Anda harus menambahkan lokasi ke variabel PATH.
atau
sumber
sudo
melakukannyawhich
.