нужно снять бекап zimbra, это обычное копирование папки /opt/zimbra на другой носитель, винт, диск и тд. я выбрал копирование по сети на машину c windows, расшарил паку дал права, смонтировал ее в /mnt/savemount -t cifs -o username=zimbra,password=1234567,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.0.100/zimbra /mnt/save
написал простой скрипт
#!/bin/bash
echo «zimbra backup running .... » >/dev/pts/0
/etc/init.d/zimbra stop
cd /opt/
tar -cvzf /mnt/save/zimbra_`date +%d_%m_%y`.tgz zimbra/
echo «zimbra backup complite! » >/dev/pts/0
/etc/init.d/zimbra start
Если запускаю вручную в консоле выполнение, архивирование выполняется на смонтированный диск, но так как папка довольно большая архивировать может полдня. Остановить в рабочее время не могу, поэтому вставляю в cron на выполнение ночью. Утром прихожу папка не архивировалась. Логи смотрю syslog, message, cron не могу найти причину, нет там записей почему операция прервалась. И мыслей уже нет. Посоветуйте в чем может быть причина, на что еще смотреть
Ошибка в ">/dev/pts/0"
Если нужна запись в лог, используй logger.
> Ошибка в ">/dev/pts/0"
> Если нужна запись в лог, используй logger.я и так пробовал запустить, тот же результат
#!/bin/bash
/etc/init.d/zimbra stop
cd /opt/
tar -cvzf /mnt/save/zimbra_`date +%d_%m_%y`.tgz zimbra/
/etc/init.d/zimbra startcrontab -l
# m h dom mon dow command
#test script #25 14 * * 6 /root/first.sh
#backup zimbra #01 17 * * 6 /root/backup_zimbra.shfirst.sh тестовый скрипт сделал, просто вывод на экран для проверки крона, работает... backup_zimbra.sh собственно он не работает, хотя когда запускаю ручками через консоль то выполнение скрипта идет, архив увеличивается, но прихожу а там файл несколько Кб всего получается, не пойму почему и логов никаких (
>[оверквотинг удален]
> tar -cvzf /mnt/save/zimbra_`date +%d_%m_%y`.tgz zimbra/
> /etc/init.d/zimbra start
> crontab -l
> # m h dom mon dow command
> #test script #25 14 * * 6 /root/first.sh
> #backup zimbra #01 17 * * 6 /root/backup_zimbra.sh
> first.sh тестовый скрипт сделал, просто вывод на экран для проверки крона, работает...
> backup_zimbra.sh собственно он не работает, хотя когда запускаю ручками через консоль
> то выполнение скрипта идет, архив увеличивается, но прихожу а там файл
> несколько Кб всего получается, не пойму почему и логов никаких (пишите полный путь в скрипте
>[оверквотинг удален]
>> /etc/init.d/zimbra start
>> crontab -l
>> # m h dom mon dow command
>> #test script #25 14 * * 6 /root/first.sh
>> #backup zimbra #01 17 * * 6 /root/backup_zimbra.sh
>> first.sh тестовый скрипт сделал, просто вывод на экран для проверки крона, работает...
>> backup_zimbra.sh собственно он не работает, хотя когда запускаю ручками через консоль
>> то выполнение скрипта идет, архив увеличивается, но прихожу а там файл
>> несколько Кб всего получается, не пойму почему и логов никаких (
> пишите полный путь в скриптея не пойму, почему когда я запускаю ручками, срабатывает, наблюдаю архивирование в терминале, а когда ставлю в кронтаб то не работает
ставлю его в кронтаб, время выполнения приходит в терминале отображаются строки
zimbra backup running ....
zimbra backup complite!
создается файл в нужной дирректории несколько мегабайт, содержащий пару папок с дирректории /opt/zimbra, но весь не снимается.
А что за система? Мб bash так не видит? Мб что с env?#!/bin/bash
TAR=$(which tar)
LOGGER=$(which logger)function w_exit
{
msg="$1"
test -z "$msg" || $LOGGER "$msg"
exit 1
}test ! -z $TAR || w_exit "$0: tar not found"
mount | grep "/mnt/save" > /dev/null
RV=$?
if [ ! -d /mnt/save ] || [ $RV -ne 0 ]; then
mkdir -p /mnt/save > /dev/null
mount -t cifs -o username=zimbra,password=1234567,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.0.100/zimbra /mnt/save
test $? -eq 0 || w_exit "$0: Could not mount /mnt/save"
fi/etc/init.d/zimbra stop
cd /opt/
$TAR -cvzf /mnt/save/zimbra_$(date +%d_%m_%y).tgz zimbra/
$LOGGER "$0: backup process complete"
/etc/init.d/zimbra startexit 0
> нужно снять бекап zimbra, это обычное копирование папки /opt/zimbra на другой носитель,
> винт, диск и тд. я выбрал копирование по сети на машину
> c windows, расшарил паку дал права, смонтировал ее в /mnt/save
> mount -t cifs -o username=zimbra,password=1234567,iocharset=utf8,file_mode=0777,dir_mode=0777
> //192.168.0.100/zimbra /mnt/save
> написал простой скрипт
> #!/bin/bashЕсли хочешь увидеть, чего там не так, либо настрой почту и отсылку рипортов из крона (если умеет?) на неё, либо сразу переходи к п.2
> Если запускаю вручную в консоле выполнение, архивирование выполняется на смонтированный
> диск, но так как папка довольно большая архивировать может полдня. Остановить
> в рабочее время не могу, поэтому вставляю в cron на выполнение
> ночью. Утром прихожу папка не архивировалась. Логи смотрю syslog, message, cron
> не могу найти причину, нет там записей почему операция прервалась. И
> мыслей уже нет. Посоветуйте в чем может быть причина, на что
> еще смотретьВсе, прописью: "В-С-Е", вопросы (ну, ладно, 98%+) про "ниработаит под кроном" кончаются тем, что под кконом нет _правильного PATH. Советуют либо к каждому вызову бинарей писать полный путь каждого из них (у тебя там tar и _неявно - gzip), либо сделать сразу, как надо, и прописать PATH. Выполни в "работающей" нормальной сессии
$ echo PATH=$PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/gamesи то, что она выдаст, вставь в скрипт второй строчкой. (Ежё есть, вроде, то же самое для "всего" крона в crontab-е или около -- но кроны разные и читать маны влом.)
>> #!/bin/bash
> Если хочешь увидеть, чего там не так, либо настрой почту и отсылку
> рипортов из крона (если умеет?) на неё, либо сразу переходи к
> п.2Вариант: второй строкой
exec >&~/какой-нибудь-файл