У меня есть скрипт bash, в котором я использую команду ip r . Когда я запускаю скрипт в bash, он работает, но когда cron запускает его, это не так.

Это строка в моем скрипте:

ping -q -w 1 -c 1 `ip r | grep -m 1 default | cut -d ' ' -f 3` >/dev/null || exit

Чтобы проверить, что команда ip r является проблемой, я добавил notify-send "TEST $(ip r)" перед этой строкой. Когда я выполняю скрипт в bash, он отправляет уведомление с TEST и выводом ip r но при запуске с cron уведомление содержит только TEST .

1 ответ1

0

Переменная $PATH не была установлена при запуске с cron. Поэтому я запустил echo $PATH в bash, а затем установил $PATH для этого вывода в команде crontab.

Для этого я добавил

eval "export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin :/usr/sbin:/home/alex/.local/bin"

в crontab -e где все после PATH= является выводом команды echo $PATH при запуске в bash.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .