У меня есть это в моем 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 ответа3

4

Поскольку ваш скрипт, который запускает cron начинается с #!/usr/bin/env bash (верно?), все, что вам нужно сделать в вашем crontab :

*/1 * * * * /path/to/script > ~/cron.log 2>&1

И убедитесь, что скрипт действительно что-то выводит; если ваш сценарий абсолютно тихий, ваш файл журнала будет пустым.

1

Оказывается, я не должен был иметь эту строку:

PATH=/usr/bin:/usr/local/bin:$PATH

Удаление из crontab решило проблему.

-3

Не уверен, что именно ты пытаешься сделать, но для меня

# which bash
/bin/bash

Так что постарайтесь

/usr/bin/env /bin/bash /path/to/some/script > ~/cron.log 2>&1

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