PDA

Просмотр полной версии : ubuntu cron парадокс


brain-m
08.08.2009, 18:48
Написал скрипт, который топорно делает 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) запустить этот скрипт в ручную, то всё нормально.

У кого какие мысли на этот счёт?

nE0sIghT
24.08.2009, 02:34
А вот это - echo $CurDate"_www was created!" в лог выплывает?

Ameer
01.09.2009, 13:42
А из под какого пользователя Вы запускаете скрипт из консоли? Вряд ли это root, к тому же, если мне не изменяет память, root в Убунте по умолчанию отключен. Попробуйте и из крона запустить от него же.

brain-m
01.09.2009, 17:13
Вопрос решился на sysadmins.ru.
Надо было сделать перенаправление вывода: &> tar.log
В результате команда в скрипте для правильной работы крона должна выглядеть так:
tar cvpjf /root/backup/$CurDate"_www".tar.bz2 --exclude=/var/www/phpmyadmin /var/www &> tar.log

Ameer
01.09.2009, 17:23
Ага. Таким образом сделали вывод успехов и ошибок в файл tar.log, а файлы то все упаковываться стали?

brain-m
01.09.2009, 17:35
ameer написал(а):

Ага. Таким образом сделали вывод успехов и ошибок в файл tar.log, а файлы то все упаковываться стали?


Да, в том-то и дело, что всё стало архивироваться как надо, лог содержит список заархивированных файлов.

Объяснения не было найдено, но всё теперь всё работает правильно.

igvk
06.09.2009, 00:14
Скорее всего, список файлов был очень большим.
Там же стандартный вывод должен направляться через почту - видимо, буфера не хватило.
В syslog ругани не было?