URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91943
[ Назад ]

Исходное сообщение
"Cron"

Отправлено Andrey163 , 14-Июл-11 10:55 
Привет всем. столкнулся с кроном, и никак неомгу запустить задания, чтоб я не писал в крон
cron -e, задания не запускаются, в логах пишет вот такое
CMD (tar -zcf /var/backups/home.tgz /home/doc/3)
CRON) error (grandchild #22497 failed with exit status 2)
CRON) info (No MTA installed, discarding output)
в гугле ничего к сожелению ненашел.

Содержание

Сообщения в этом обсуждении
"Cron"
Отправлено Andrey Mitrofanov , 14-Июл-11 11:13 
> CRON) info (No MTA installed, discarding output)

Это значит, что cron хочет послать отчёт об ошибке выполнения задания по почте и не может потому, что не установлен MTA.

> в гугле ничего к сожелению ненашел.


"Cron"
Отправлено Andrey163 , 14-Июл-11 11:17 
ну ето то понятно, а вот как с первой ошибкой быть, почему cron не отрабатывает, ради эксперемента засунул эту строчку в скрипт и запустил, так все отработало и бэкап создался, а вот через крон не стартует(


"Cron"
Отправлено DeadLoco , 14-Июл-11 11:29 
> ну ето то понятно, а вот как с первой ошибкой быть, почему
> cron не отрабатывает

Потому что у крона собственное окружение, собственные пути, по которым ищутся бинарники, и собственные переменные. Которые не обязательно совпадают с рутовыми.

Как минимум, прописать полные пути при вызове утилит внутри скрипта, потому что по умолчанию крон лезет искать только в /usr/bin:/bin.


"Cron"
Отправлено Andrey Mitrofanov , 14-Июл-11 11:26 
> CMD (tar -zcf /var/backups/home.tgz /home/doc/3)
> CRON) error (grandchild #22497 failed with exit status 2)

Possible exit codes of GNU tar are summarized in the following table:
[...]
2
    ‘Fatal error’. This means that some fatal, unrecoverable error occurred.


То есть tar "ну, не смогла". Более подробно -- в том самом логе, который крон не смог послать и выбросил.

Обычно заданиям в кроне нехватает "окружения", например, PATH-а.
Может, прав не хватает.

Добавить к запуску tar-а  2>/some/file.txt (возможно, положить всё это в скрипт; не забыть cmod +x его) и прочитать наконец, что не так.


"Cron"
Отправлено Andrey163 , 14-Июл-11 12:47 
пробовал дописывать tar -zcf ./var/backups/home.tgz /home/doc/3 2>/home/1.log
ошибка таже, вот лог не пишется.
cron скрипт не запускает.
отдельно скрипт запускаю.
добавил в PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin

P.S. ос ubuntu


"Cron"
Отправлено Дядя_Федор , 14-Июл-11 15:29 
> пробовал дописывать tar -zcf ./var/backups/home.tgz /home/doc/3 2>/home/1.log

Пусть к файлу архива пишите АБСОЛЮТНЫЙ. Вам уже выше сказали, что крон запускается в собственном окружении! А у Вас в пути к файлу стоит "точка".


"Cron"
Отправлено Andrey163 , 14-Июл-11 15:38 
var/backups/home.tgz считается АБСОЛЮТНЫМ?
точку я добавил уже, когда манипулировал с настройками...


"Cron"
Отправлено maxno , 14-Июл-11 15:55 
> var/backups/home.tgz считается АБСОЛЮТНЫМ?
> точку я добавил уже, когда манипулировал с настройками...

Путь к tar должен быть абсолютным !


"Cron"
Отправлено Andrey163 , 14-Июл-11 16:41 
Прошу прощения я неувидел Сообщение от DeadLoco.
прописываю
/bin/tar -zcf /var/backups/home.tgz /home/doc/3
но результат тотже



"Cron"
Отправлено Дядя_Федор , 14-Июл-11 17:09 
Полную запись в crontab приведите. Вот пример моего кронтаба:
------------
crontab -l
..........
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.XXXXq3wnge installed on Wed May 25 10:38:03 2011)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib/python2.6/
MAILTO=****@****.ru
HOME=/tmp
4 5 * * *       /usr/sbin/ntpdate 10.10.10.10 >/dev/null 2>&1
55 4 * * *              emerge --sync > /dev/null 2>&1


"Cron"
Отправлено Andrey163 , 15-Июл-11 10:03 
вот
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h  dom mon dow   command
57 9  * * * /bin/tar -zcvpf /home/backup/backup.tar.gz /home/doc/3

вот ошибки
CRON[24484]: (user) CMD (/bin/tar -zcvpf /home/backup/backup.tar.gz /home/doc/3)
CRON[24483]: (CRON) error (grandchild #24484 failed with exit status 2)
CRON[24483]: (CRON) info (No MTA installed, discarding output)

веть по идеи, даже директорию PATH можно не прописывать, ето все записано в /etc/crontab


"Cron"
Отправлено Pahanivo , 15-Июл-11 10:10 
> вот
> PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
> # m h  dom mon dow   command
> 57 9  * * * /bin/tar -zcvpf /home/backup/backup.tar.gz /home/doc/3
> вот ошибки
> CRON[24484]: (user) CMD (/bin/tar -zcvpf /home/backup/backup.tar.gz /home/doc/3)
> CRON[24483]: (CRON) error (grandchild #24484 failed with exit status 2)
> CRON[24483]: (CRON) info (No MTA installed, discarding output)
> веть по идеи, даже директорию PATH можно не прописывать, ето все записано
> в /etc/crontab

а если так?
57 9  * * * root /bin/tar -zcvpf /home/backup/backup.tar.gz /home/doc/3
если пути правильные - проверяй права


"Cron"
Отправлено Дядя_Федор , 15-Июл-11 20:59 
> а если так?
> 57 9  * * * root /bin/tar -zcvpf /home/backup/backup.tar.gz /home/doc/3
> если пути правильные - проверяй права

Коллега абсолютно верно говорит. :) Если речь идет об ОБЩЕСИСТЕМНОМ (/etc/crontab) файле, необходимо ставить имя пользователя, от имени которого выполняется скрипт. И, естественно, либо перезагружать cron-демон (vixie-cron  в случае моего Gentoo), либо послать процессу сигнал -HUP (killall -HUP crond). Если же это выполняется командой crontab -e (в случае рутовой консоли) - ничего перезапускать не надо и имени пользователя указывать тоже не надо. Вот где-то так.


"Cron"
Отправлено troopertm , 15-Июл-11 10:14 
> Привет всем. столкнулся с кроном, и никак неомгу запустить задания, чтоб я
> не писал в крон
> cron -e, задания не запускаются, в логах пишет вот такое
> CMD (tar -zcf /var/backups/home.tgz /home/doc/3)
> CRON) error (grandchild #22497 failed with exit status 2)
> CRON) info (No MTA installed, discarding output)
> в гугле ничего к сожелению ненашел.

а вы какой cron настраиваете? пользовательский или рутовый?


"Cron"
Отправлено Andrey163 , 15-Июл-11 10:31 
пробовал от root ошибка меняется на
error (grandchild #24861 failed with exit status 127)
настраиваю через crontab -e (тоесть от рута)
права на что, на папки? если на них, то у обоих root rwxr-xr-x


"Cron"
Отправлено troopertm , 15-Июл-11 20:28 
> пробовал от root ошибка меняется на
> error (grandchild #24861 failed with exit status 127)
> настраиваю через crontab -e (тоесть от рута)
> права на что, на папки? если на них, то у обоих root
> rwxr-xr-x

exit status 2 говорит о неправильном использовании встроенных команд (имеется ввиду Bash)
exit status 127 говорит о том, что команда не найдена (имеется ввиду Bash)

у вас какой шелл?


"Cron"
Отправлено Юрий , 15-Дек-11 12:51 
> у вас какой шелл?

У меня подобные ошибки встречались не раз и в разных системах, но помню как-то все исправлял, но как не помню. Сейчас попробовал в Mint:

*/5 * * * *  cd /opt/my; sudo ./boinc.pl

CRON[2397]: (username) CMD (cd /opt/my; sudo ./boinc.pl)
CRON[2396]: (CRON) error (grandchild #2397 failed with exit status 1)
CRON[2396]: (CRON) info (No MTA installed, discarding output)

Вот так тоже не работает:
*/5 * * * *  cd /opt/my && sudo ./boinc.pl

В sudoers прописал:
ALL ALL=(ALL) NOPASSWD:/opt/my/boinc.pl

Права для папки и всех включений установил 777 (временно), в чем проблема. Только не судите строго, вариант со сменой каталога увидел в стандартом системном файле /etc/crontab


"Cron"
Отправлено Юрий , 15-Дек-11 15:37 
> Права для папки и всех включений установил 777 (временно), в чем проблема.
> Только не судите строго, вариант со сменой каталога увидел в стандартом
> системном файле /etc/crontab

все заработало когда crontab -e поправил от имени root :)