Ответ https://stackoverflow.com/a/2546509/5593430 показывает, как получить среду cron и использовать ее для своего скрипта. Но имейте в виду, что среда может отличаться в зависимости от используемого файла crontab. Я создал три разных записи cron, чтобы сохранить среду через env > log
. Это результаты на Amazon Linux 4.4.35-33.55.amzn1.x86_64.
1. Глобальный / etc / crontab с пользователем root
MAILTO=root
SHELL=/bin/bash
USER=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PWD=/
LANG=en_US.UTF-8
SHLVL=1
HOME=/
LOGNAME=root
_=/bin/env
2. Пользователь crontab root (crontab -e
)
SHELL=/bin/sh
USER=root
PATH=/usr/bin:/bin
PWD=/root
LANG=en_US.UTF-8
SHLVL=1
HOME=/root
LOGNAME=root
_=/usr/bin/env
3. Скрипт в /etc/cron.hourly/
MAILTO=root
SHELL=/bin/bash
USER=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin
_=/bin/env
PWD=/
LANG=en_US.UTF-8
SHLVL=3
HOME=/
LOGNAME=root
Самое главное PATH
, PWD
и HOME
отличаются. Обязательно установите их в своих скриптах cron, чтобы они полагались на стабильную среду.