2

Я хочу установить crontab на моем Macbook Pro под управлением Lion. Я запускаю обычный crontab -e и быстро провожу работу, чтобы увидеть, все ли работает нормально ---

*/10 * * * * wget -O - -q -t 1 http://site.local/cron.php

Через 10 минут я вижу, что я получил "почту" из системы, заявив ---

/bin/sh: wget: command not found

У меня установлен wget, так как я могу запустить программу из командной строки

Как я могу исправить эту ошибку? Мой crontab или .bash_profile требует шебанга?

2 ответа2

9

Вероятно, это связано с тем, что ваша среда отличается, когда она запускается как задание cron (то есть переменная среды PATH отличается от той, что вы используете в терминале bash).

В вашем Баше терминале, использовать which , чтобы выяснить, какой wget используются:

laptop [ ~ ]: which wget
/opt/local/bin/wget

Затем используйте полный путь в задании cron:

*/10 * * * * /opt/local/bin/wget -O - -q -t 1 http://site.local/cron.php

Для заданий cron я обычно запускаю скрипт bash вместо указания команды непосредственно в crontab. Это немного проще для отладки и держит crontab немного чище.

2

Чтобы узнать, где находится определенная команда, попробуйте:

which wget

или же

which <certain-command>

Выходные данные должны содержать путь к исполняемому файлу. Например:

linux-dgr7:~ # sudo which wget
/usr/bin/wget 

затем измените запись следующим образом:

*/10 * * * * /usr/bin/wget -O - -q -t 1 http://site.local/cron.php

Если wget не появляется после выполнения чего ... вы должны добавить местоположение в переменную PATH.

PATH=$PATH:/where/ever/path/is

или же

PATH=$PATH:/opt/wget

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