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