Проблемы с 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

Возможно, вы захотите попробовать с небольшим скриптом, который просто имеет переменные настройки.

Другие вопросы по тегам