ubuntu cron парадокс

Статус
В этой теме нельзя размещать новые ответы.

brain-m

Постоялец
Регистрация
28 Фев 2008
Сообщения
35
Реакции
7
Написал скрипт, который топорно делает backup директории:
#!/bin/bash
CurDate=`date +"%Y%m%d"`
tar cvpjf /root/backup/$CurDate"_www".tar.bz2 --exclude=/var/www/phpmyadmin /var/www
echo $CurDate"_www was created!"

Запускаю его из консоли - всё прекрасно работает, но как только запускаю тоже самое через cron:

4 16 * * * root /root/backup/backup.sh

Происходит поразительное явление: backup происходит, но НЕ ВСЕХ ФАЙЛОВ.
Никаких ошибок ни по логам, ни в самом архиве нет, но он содержит не всё, что должен (меньше половины). Логики в том, что он отказывается backupить я не вижу, даже не знаю что и думать.
Если следом тут же (после cron) запустить этот скрипт в ручную, то всё нормально.

У кого какие мысли на этот счёт?
 
А вот это - echo $CurDate"_www was created!" в лог выплывает?
 
А из под какого пользователя Вы запускаете скрипт из консоли? Вряд ли это root, к тому же, если мне не изменяет память, root в Убунте по умолчанию отключен. Попробуйте и из крона запустить от него же.
 
Вопрос решился на sysadmins.ru.
Надо было сделать перенаправление вывода: &> tar.log
В результате команда в скрипте для правильной работы крона должна выглядеть так:
tar cvpjf /root/backup/$CurDate"_www".tar.bz2 --exclude=/var/www/phpmyadmin /var/www &> tar.log
 
Ага. Таким образом сделали вывод успехов и ошибок в файл tar.log, а файлы то все упаковываться стали?
 
Ага. Таким образом сделали вывод успехов и ошибок в файл tar.log, а файлы то все упаковываться стали?
Да, в том-то и дело, что всё стало архивироваться как надо, лог содержит список заархивированных файлов.

Объяснения не было найдено, но всё теперь всё работает правильно.
 
Скорее всего, список файлов был очень большим.
Там же стандартный вывод должен направляться через почту - видимо, буфера не хватило.
В syslog ругани не было?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху