Войти

Показать полную графическую версию : [решено] Скрипт с cron-a не отрабатывает до конца.


andragen
31-03-2010, 10:30
есть скрипт backup-daily
#!/bin/sh
OF=$(date +%F-%H-%M)
cd /usr/local/www/apache22/data
tar -c -f /usr/local/www/apache22/backups/htdocs/htdocs-$OF.tar.gz *

cd /usr/local/www/apache22/backups/db
mysqldump site_db1 --host=XXX --user=XXX --password=XXX > $OF.sql
gzip -q9 db-$OF $OF.sql

есть запись в cron
0 0 * * * root /usr/local/www/apache22/backups/backup-daily

скрипт запускается и создает в htdocs htdocs. С этим все нормально.

А вот mysqldump не создает копию базы.
Хотя если ручками запустить скрипт mysqldump отрабатывает правильно.

cat /var/log/cron | grep backup-daily
Mar 31 00:00:00 www /usr/sbin/cron[74633]: (root) CMD ( /usr/local/www/apache22/backups/backup-daily)

Прошу подсказать пути решения.

mar
31-03-2010, 10:44
пора большими красными буквами прибить в начале раздела слова:
в скрипте, запускаемом из-под крон команды должны идти с полным путем. Соответственно, не mysqldump, а /usr/local/bin/mysqldump (или где он там у Вас живет)

andragen
31-03-2010, 10:52
ok, изменил, завтра посмотрим на результат.

mike345
31-03-2010, 12:27
andragen, Добавьте в конец каждой команды
2>> /var/log/mylog
Сильно упрощает отладку скриптов...

andragen
01-04-2010, 10:06
Скрипт отработал нормально!

to mike345

2>> /var/log/mylog

что значит 2-ка?

mike345
01-04-2010, 14:14
andragen, Двойка значит вывод ошибок.
Те при возникновении ошибки вывод команды об этой ошибке запишется в файл /var/log/mylog
На все остальное повлиять не должно, если конечно в скрипте уже не встроена обработка ошибок.

vadblm
01-04-2010, 14:51
Вот шпаргалка (http://tldp.org/LDP/abs/html/io-redirection.html) по перенаправлению ввода-вывода. Она, правда, для bash, но на 95% годна и для других шеллов, в т.ч. sh.




© OSzone.net 2001-2012