Cron завжди працює з переважно порожнім середовищем. HOME, LOGNAME та SHELL встановлені; і дуже обмежений ПАТ. Тому доцільно використовувати цілі шляхи до виконуваних файлів та експортувати будь-які змінні, потрібні у вашому сценарії, під час використання cron.
Існує кілька підходів, якими ви можете скористатися для встановлення змінних оточуючого середовища в cron, але всі вони означають його встановлення у вашому сценарії.
Підхід 1:
Встановіть кожну змінну, необхідну вручну, у своєму сценарії.
Підхід 2:
Джерело вашого профілю:
. $HOME/.bash_profile
(або . $HOME/.profile
)
(Зазвичай ви виявите, що вищезазначений файл буде джерелом інших файлів (наприклад, ~ / .bashrc -> / etc / bashrc -> /etc/profile.d/*) - якщо ні, ви також можете надсилати ці файли.)
Підхід 3:
Збережіть змінні середовища у файл (запустіть як потрібний користувач):
env > /path/to/my_env.sh
Потім імпортуйте через ваш cron script:
env - `cat /path/to/my_env.sh` /bin/sh
Підхід 4:
У деяких випадках ви можете встановити глобальні змінні cron у /etc/default/cron
. Однак для цього є елемент ризику, оскільки вони будуть встановлені для всіх робочих місць у галузі.
source
ваш (bash) профіль.