Kita perlu memiliki / usr / local / bin di jalur cron untuk semua pengguna. Apakah ada cara untuk mengaturnya di seluruh sistem, tanpa perlu mengedit crontab setiap pengguna individu?
Kami telah mencoba menambahkan PATH ke / etc / crontab:
# grep PATH /etc/crontab
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Tetapi ketika pengguna memiliki ini di crontab mereka:
$ crontab -l | grep PATH
* * * * * echo $PATH > /tmp/current_cron_path
... itu mengungkapkan bahwa jalur mereka masih disetel ke default:
$ cat /tmp/current_cron_path
/usr/bin:/bin
echo
cron Anda mungkin tidak dapat diandalkan .Jawaban:
Anda dapat mengkonfigurasi PATH Anda dalam file konfigurasi crontab seperti yang ditunjukkan pada kode pertama kecuali di sana . Pertama tentukan variabel env, kemudian tentukan pekerjaan.
UPD: Karena tautannya rusak, berikut ini kutipannya:
sumber
sudo crontab -e
)Mengatur variabel PATH harus bekerja di Ubuntu, bagaimana Anda mengatakan itu tidak berfungsi?
Lihat # 14: Linux Crontab: 15 Contoh Pekerjaan Cron Luar Biasa
sumber
Saya tidak dapat menemukan solusi untuk ini juga. Yang paling dekat saya dengan solusi yang layak adalah sebagai berikut (diambil dari https://raymii.org/s/tutorials/Better_cron_env_and_shell_control_with_the_SHELL_variale.html ).
SHELL=/path/to/setup/cron.bash
Sebagai contoh:
Kelemahan: ini mengharuskan Anda untuk menentukan
SHELL=...
di bagian atas setiap cronjob. Terbalik: Anda akan menggunakan variabel lingkungan biasa, dan Anda tidak perlu khawatir tentang menjaga variabel konsisten antara cron dan lainnyasumber
Jika Anda dapat menjadi root, dapatkah Anda mencoba mengedit
/etc/init.d/cron
dan mengubah PATH di sana? Saya belum menguji ini, tetapi akan menarik untuk diperiksa.sumber