Страница 1 из 1

cron не выполняет задание

Добавлено: 2011-02-24 15:33:15
slav83
Хочу настроить обновление dyndns как сказано тут: http://openbsd-wiki.org/index.php?title=DynDNS на OpenBSD 4.8

Вся работа проводилась от пользователя root. Создал файл-скрипт обновления dyndnsupd, его содержимое:
----------------------------------------------
#!/bin/sh
/usr/local/bin/ipcheck.py -q -d /etc -i tun0 username password domains
----------------------------------------------

Дал права файлу на выполнение всем и всем группам 10777
В кронтаб прописал:
----------------------------------------------
# DynDNS
*/10 * * * * /usr/sbin/dyndnsupd
----------------------------------------------
в логе крон пишет, что скрипт выполняет. Ошибок в логе нет. Но скрипт не выполняется. Если забить строку из кронтаба в командную строку с sh
----------------------------------------------
sh /usr/sbin/dyndnsupd
----------------------------------------------
то скрипт отрабатывает и dyndns запись обновляется. Создал параллельное задание - контрольное. Контрольное задание выполняется, скрипт - нет. В локальное мыло приходит следующее сообщение (цитирую только текст письма):
----------------------------------------------
sh: /usr/sbin/dyndnsupd :not found
----------------------------------------------
- Пробовал создавать кронтаб командой crontab путь к файлу с рутовским табом - не помогло;

- Пробовал править синтаксис таба: ставить везде знаки табуляции, или наоборот пробелы, оставлять возврат каретки в конце таба или строку с комментариями - не помогло;

- Пробовал ставить перед командой в табе sh, /bin/sh - не помогло;

- Пробовал класть скрипт в другие папки: в папку /root, в папку /home, в папку /bin - не помогло;

- Пробовал гугление - не помогло :(


Подскажите, в чем причина, что сделать?

Re: cron не выполняет задание

Добавлено: 2011-02-24 15:51:05
hizel

Код: Выделить всё

#!/bin/sh
/usr/local/bin/python /usr/local/bin/ipcheck.py -q -d /etc -i tun0 username password domains

Re: cron не выполняет задание

Добавлено: 2011-02-24 20:35:30
slav83
/usr/local/bin/python - у меня такого файла нет в файловой системе(

Re: cron не выполняет задание

Добавлено: 2011-02-24 20:57:16
hizel

Код: Выделить всё

which python

Re: cron не выполняет задание

Добавлено: 2011-02-24 21:24:11
slav83
hizel писал(а):

Код: Выделить всё

which python
без него из командной строки идеи и скриптом из командной строки идет без python.. Дело, кажется, не в python..

Re: cron не выполняет задание

Добавлено: 2011-02-24 23:17:19
slav83
hizel писал(а):

Код: Выделить всё

which python
Судя по всему, дело не в скрипте вовсе.

Очистил кронтаб, создал другой кронтаб с содержимым


*/1 * * * * /root/test


создал файл /root/test с содержимым


echo "test mesage" > /root/2


Т.е. скрипт выводит тестовое сообщение в файл /root/2 - его я тоже создал, права всех файлов изменил. И опять тоже мыло локальное:

X-Cron-Env: <PATH=/usr/local/bin>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>

/bin/sh: /root/test
: not found

Т.е. мой крон вообще никаких файлов "не видит"..
ОС недавно установлена, на неё только самбу да вебмин поставить успел.

Re: cron не выполняет задание

Добавлено: 2011-02-25 19:25:41
slav83
slav83 писал(а):
hizel писал(а):

Код: Выделить всё

which python

Всё дело было в виндовых переносах ^M, видимые только напрямую они в OpenBSD портили всё дело. Убрал их, пересоздал кронтаб - всё заработало!

Всем спасибо!