cron запускает скрипты с минимальным окружением. В частности, его PATH не содержит все обычные двоичные каталоги, только / usr / bin и / bin, поэтому любые команды в других двоичных каталогах (например, wget) будут недоступны.
Есть несколько способов исправить это. Один из вариантов - дать вашему скрипту полный путь к wget:
#!/bin/sh
/usr/local/bin/wget -r -l3 --no-parent -nc -A ".shtml" 'http://some.url/somethingelse/'
(или каков его фактический путь - используйте which wget
, чтобы узнать.)
Другой способ - явно указать PATH в скрипте:
#!/bin/sh
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
wget -r -l3 --no-parent -nc -A ".shtml" 'http://some.url/somethingelse/'
(или любой другой путь, который вы обычно используете; убедитесь, что он содержит местоположение wget.)
Или вы можете установить PATH в вашем crontab:
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
00 16 * * * /Users/myusername/script.sh
04 16 * * * /Users/myusername/crontest.sh