@nikweter
Системный администратор

Почему скрипт отрабатывает именно так?

Сделал скрипт выгрузки дампа mysql и небольшой его проверки.
Почему-то уведомление об ошибке отправляется раньше, чем закончится выгрузка дампа.
Почему так?
#/bin/bash
#Set date
DATE=`date +%d%m%y`

#Create backup dir
mkdir /var/lib/bareos/backup

for base in base1 base2
do

#dump bases
mysqldump $base > /var/lib/bareos/backup/$base-$DATE.sql &2>> /var/log/mysql/log.txt


#Request for list of tables in base
req=($(mysql -e "show tables in $base;"|tail -n +2))

#Find for list of tables in dump
gr=($(sed -rn 's/DROP TABLE IF EXISTS `(\w+)`.*/\1/p' /var/lib/bareos/backup/$base-$DATE.sql|grep -v '^/'))


#Check 2 lists
check=`echo ${req[@]} ${gr[@]} | tr ' ' '\n' | sort | uniq -u`
if [ "$check" == "" ]
then

echo "OK" >>  /var/log/mysql/log.txt

else

#Send mail alert
printf "Subject:%b\nFrom:%b\nTo:%b\n%b\n" \
       "Mysql tenmon alert" "alert@site.ru" "savelev@site.ru" \
       "Mysql dump $base is break"|\
msmtp -t --host=site.ru \
      --port=587 \
      --user=alert@site.ru \
      --passwordeval="echo password" \
      --from=alert@site.ru \
      --tls=on \
      --tls-certcheck=off \
      --auth=on

fi

done
exit
  • Вопрос задан
  • 68 просмотров
Решения вопроса 2
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
mysqldump $base > /var/lib/bareos/backup/$base-$DATE.sql &2>> /var/log/mysql/log.txt

потому что нет такого перенаправления в баше: &2>>, & трактуется как "выполнять в фоне".
Ответ написан
saboteur_kiev
@saboteur_kiev
build engineer
mysqldump $base > /var/lib/bareos/backup/$base-$DATE.sql &2>> /var/log/mysql/log.txt


Вот тут нужно
mysqldump $base > /var/lib/bareos/backup/$base-$DATE.sql 2>> /var/log/mysql/log.txt

иначе вы mysqldump в фон отправляете, а не STDERR перенаправляете.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Blogman Оренбург
от 20 000 до 90 000 руб.
21 июля 2018, в 18:06
10000 руб./за проект
21 июля 2018, в 15:32
1000 руб./за проект