"/usr/bin/env bash" не найден при запуске из скрипта cron
У меня есть это в моем crontab:
PATH=/usr/bin:/usr/local/bin:$PATH
*/1 * * * * /usr/bin/env bash > ~/cron.log 2>&1
Выход в cron.log
является следующим:
/usr/bin/env bash: No such file or directory
/usr/bin/env
так же как /bin/bash
оба существуют. И я также могу запустить эту команду от того же пользователя, которому принадлежит этот crontab без каких-либо ошибок. Я также попытался добавить
SHELL=/bin/bash
на вершину crontab. Нет эффекта. Понятия не имею, что происходит. Также это:
*/1 * * * * which bash > ~/cron.log 2>&1
вообще ничего не показывает в лог-файле. Это все, что у меня есть в моем crontab для этого пользователя, и ничего больше.
3 ответа
Так как ваш сценарий cron
работает начинается с #!/usr/bin/env bash
( верно?), все, что вам нужно сделать в вашем crontab
является:
*/1 * * * * /path/to/script > ~/cron.log 2>&1
И убедитесь, что скрипт действительно что-то выводит; если ваш сценарий абсолютно тихий, ваш файл журнала будет пустым.
Оказывается, я не должен был иметь эту строку:
PATH=/usr/bin:/usr/local/bin:$PATH
Удаление из crontab решило проблему.
Не уверен, что именно ты пытаешься сделать, но для меня
# which bash
/bin/bash
Так что постарайтесь
/usr/bin/env /bin/bash /path/to/some/script > ~/cron.log 2>&1