У меня есть этот сценарий оболочки в /usr/local/1.sh:
#!/bin/sh
wget -r -np --user=peter --password='123' ftp://67.225.87.95/ -p /test/
Если я запустил его, используя
# sh 1.sh
сценарий выполняется нормально и делает то, что должен делать.
Но если я создам задание cron для выполнения того же сценария:
1 2 * * * /usr/local/bin/1.sh
скрипт вообще не выполняется.
Что могло быть не так?
Если вы собираетесь запускать его напрямую, не вызывая интерпретатор оболочки, вам необходимо предоставить соответствующие разрешения:
chmod +x /usr/local/bin/1.sh
В противном случае запустите интерпретатор против его:
1 2 * * * /bin/sh /usr/local/bin/1.sh
1 2 * * * /usr/local/bin/1.sh > /var/log/1.log 2>&1
Заменить:
1 2 * * * /usr/local/bin/1.sh
По:
1 2 * * * /bin/bash /usr/local/bin/1.sh
или
Оставь это:
1 2 * * * /usr/local/bin/1.sh
И добавьте следующее к /usr/local/bin/1.sh
:
#!/bin/bash
(вам может потребоваться заменить /bin/bash
чем угодно which bash
говорит вам)