URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9836
[ Назад ]

Исходное сообщение
"в скрипте не выполняется задача!"

Отправлено alexkg , 04-Мрт-14 15:55 
нужно снять бекап 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

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 не могу найти причину, нет там записей почему операция прервалась. И мыслей уже нет. Посоветуйте в чем может быть причина, на что еще смотреть


Содержание

Сообщения в этом обсуждении
"в скрипте не выполняется задача!"
Отправлено avkvl , 04-Мрт-14 16:10 
Ошибка в ">/dev/pts/0"
Если нужна запись в лог, используй logger.

"в скрипте не выполняется задача!"
Отправлено alexkg , 04-Мрт-14 16:46 
> Ошибка в ">/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 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 собственно он не работает, хотя когда запускаю ручками через консоль то выполнение скрипта идет, архив увеличивается, но прихожу а там файл несколько Кб всего получается, не пойму почему и логов никаких (


"в скрипте не выполняется задача!"
Отправлено reader , 04-Мрт-14 17:28 
>[оверквотинг удален]
> 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 собственно он не работает, хотя когда запускаю ручками через консоль
> то выполнение скрипта идет, архив увеличивается, но прихожу а там файл
> несколько Кб всего получается, не пойму почему и логов никаких (

пишите полный путь в скрипте


"в скрипте не выполняется задача!"
Отправлено alexkg , 05-Мрт-14 12:16 
>[оверквотинг удален]
>> /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, но весь не снимается.


"в скрипте не выполняется задача!"
Отправлено erera22 , 05-Мрт-14 16:59 
А что за система? Мб 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 start

exit 0


"в скрипте не выполняется задача!"
Отправлено Andrey Mitrofanov , 06-Мрт-14 09:40 
> нужно снять бекап 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-е или около -- но кроны разные и читать маны влом.)


"в скрипте не выполняется задача!"
Отправлено Andrey Mitrofanov , 06-Мрт-14 09:42 
>> #!/bin/bash
> Если хочешь увидеть, чего там не так, либо настрой почту и отсылку
> рипортов из крона (если умеет?) на неё, либо сразу переходи к
> п.2

Вариант: второй строкой

exec >&~/какой-нибудь-файл