Привет всем. столкнулся с кроном, и никак неомгу запустить задания, чтоб я не писал в крон
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) info (No MTA installed, discarding output)Это значит, что cron хочет послать отчёт об ошибке выполнения задания по почте и не может потому, что не установлен MTA.
> в гугле ничего к сожелению ненашел.
ну ето то понятно, а вот как с первой ошибкой быть, почему cron не отрабатывает, ради эксперемента засунул эту строчку в скрипт и запустил, так все отработало и бэкап создался, а вот через крон не стартует(
> ну ето то понятно, а вот как с первой ошибкой быть, почему
> cron не отрабатываетПотому что у крона собственное окружение, собственные пути, по которым ищутся бинарники, и собственные переменные. Которые не обязательно совпадают с рутовыми.
Как минимум, прописать полные пути при вызове утилит внутри скрипта, потому что по умолчанию крон лезет искать только в /usr/bin:/bin.
> 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 его) и прочитать наконец, что не так.
пробовал дописывать tar -zcf ./var/backups/home.tgz /home/doc/3 2>/home/1.log
ошибка таже, вот лог не пишется.
cron скрипт не запускает.
отдельно скрипт запускаю.
добавил в PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbinP.S. ос ubuntu
> пробовал дописывать tar -zcf ./var/backups/home.tgz /home/doc/3 2>/home/1.logПусть к файлу архива пишите АБСОЛЮТНЫЙ. Вам уже выше сказали, что крон запускается в собственном окружении! А у Вас в пути к файлу стоит "точка".
var/backups/home.tgz считается АБСОЛЮТНЫМ?
точку я добавил уже, когда манипулировал с настройками...
> var/backups/home.tgz считается АБСОЛЮТНЫМ?
> точку я добавил уже, когда манипулировал с настройками...Путь к tar должен быть абсолютным !
Прошу прощения я неувидел Сообщение от DeadLoco.
прописываю
/bin/tar -zcf /var/backups/home.tgz /home/doc/3
но результат тотже
Полную запись в 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
вот
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
> вот
> 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
если пути правильные - проверяй права
> а если так?
> 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 -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 настраиваете? пользовательский или рутовый?
пробовал от root ошибка меняется на
error (grandchild #24861 failed with exit status 127)
настраиваю через crontab -e (тоесть от рута)
права на что, на папки? если на них, то у обоих root rwxr-xr-x
> пробовал от root ошибка меняется на
> error (grandchild #24861 failed with exit status 127)
> настраиваю через crontab -e (тоесть от рута)
> права на что, на папки? если на них, то у обоих root
> rwxr-xr-xexit status 2 говорит о неправильном использовании встроенных команд (имеется ввиду Bash)
exit status 127 говорит о том, что команда не найдена (имеется ввиду Bash)у вас какой шелл?
> у вас какой шелл?У меня подобные ошибки встречались не раз и в разных системах, но помню как-то все исправлял, но как не помню. Сейчас попробовал в 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
> Права для папки и всех включений установил 777 (временно), в чем проблема.
> Только не судите строго, вариант со сменой каталога увидел в стандартом
> системном файле /etc/crontabвсе заработало когда crontab -e поправил от имени root :)