Cron selalu berjalan dengan lingkungan yang sebagian besar kosong. HOME
, LOGNAME
, dan SHELL
ditetapkan; dan PATH
yang sangat terbatas . Oleh karena itu, disarankan untuk menggunakan jalur lengkap ke executable, dan mengekspor variabel apa pun yang Anda perlukan dalam skrip saat menggunakan cron
.
Ada beberapa pendekatan yang dapat Anda gunakan untuk mengatur variabel lingkungan Anda di cron
, tetapi semuanya sama dengan menyetelnya di skrip Anda.
Pendekatan 1:
Tetapkan setiap variabel yang Anda perlukan secara manual di skrip Anda.
Pendekatan 2:
Sumber profil Anda:
. $HOME/.bash_profile
(atau . $HOME/.profile
)
(Biasanya Anda akan menemukan bahwa file di atas akan bersumber dari file lain (mis. ~/.bashrc
--> /etc/bashrc
--> /etc/profile.d/*
) - jika tidak, Anda juga dapat mengambilnya.)
Pendekatan 3:
Simpan variabel lingkungan Anda ke file (jalankan sebagai pengguna yang diinginkan):
env > /path/to/my_env.sh
Kemudian impor melalui skrip cron Anda:
env - `cat /path/to/my_env.sh` /bin/sh
Pendekatan 4:
Dalam beberapa kasus, Anda dapat menyetel global cron
variabel di /etc/default/cron
. Namun, ada elemen risiko untuk ini, karena ini akan disetel untuk semua cron
pekerjaan.