Сделал скрипт выгрузки дампа 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