Проблемы с Bash и Crontab
Возможный дубликат:
Причины, по которым crontab не работает
Я перевожу некоторые скрипты со старой машины на машину lcid ec2.
Я собираю файл в нашем ~/.bashrc
и установка некоторых переменных окружения, но эти переменные, кажется, не доступны из любого cron.
Хотя у моего cron есть . /home/username/.bashrc && /path/to/script
сценарий, похоже, не знает ни одной из переменных окружения, которые находятся в другом файле и получены из ~/.bashrc
,
Все эти сценарии успешно работают, когда я запускаю их из командной строки. При попытке запустить его из crontab, однако, они терпят неудачу.
1 ответ
Каждая строка в вашем cron будет выполняться отдельным процессом. Возможно, вы должны запустить их внутри подоболочки? * * * * * root (. /home/nigel/.bashrc && script)
,
Кроме того, ваш.bashrc обычно будет предполагать, что он является оболочкой входа в систему (предполагаются определенные переменные, и их отсутствие может привести к аварийному завершению работы скрипта). Например, ваш.bashrc может начинаться с этой строки, что означает, что ничто из вашего.bashrc не вступит в силу при запуске из cron:
[ -z "$PS1" ] && return
Возможно, вы захотите попробовать с небольшим скриптом, который просто имеет переменные настройки.