shell进行完整和增量备份mysql数据库(二)

2014-11-24 10:48:01 · 作者: · 浏览: 2
cd /zeng_dir
for i in $filename
do
echo "$StartTime start backup binlog" >> $eMailFile
for db_name in $(cat $db)
do
mysqlbinlog -u$name -pchenqibin -d $db_name $Start="$StartTime" $DATA_DIR/$i >>$db_name.$DATE.sql
if [ $ = 0 ]
then
cd /zeng_dir
tar -zcvf $db_name.$gzdumpfile $db_name.$DATE.sql
echo "Backup MySQL succeed" >>$eMailFile
mail -s "MySQL Backup" $email < $eMailFile
else
echo "Backup MySQL fail" >>$eMailFile
mail -s "MySQL Backup fail" $email < $eMailFile
fi
done
done
find $ZENG_BACK -name "*.log" -name +32 -exec rm {} \; >/dev/null 2>&1
cd /zeng_dir
#删除上次备份的完整备份的文件
find $WAN_DIR -name "*.tar.gz" --mtime +7 -exec rm -rf {} \;
#将备份好的上传到FTP服务器
for db_back in $(cat $db)
do
ftp -nv $Host <
user wolf "wolf#123"
put $db_back.$gzdumpfile
quit
EOF
done
}
backfile=`ls -l /wan_dir | wc -l`
if [ $backfile != 0 ]
then
echo "完整备份已经存在,现在进行增量备份"
sleep 10
zeng
else
echo "还没进行完整备份,现在进行完整备份"
sleep 30
wan
fi
主要变量说明:
Host #FTP的IP
pass #FTP的密码
name #FTP和mysql的用户名
DATE #时间
WAN_DIR #完整备份的目录
ZENG_BACK #增量备份的目录
DATA_DIR #mysql数据目录
error_log #错误日志
gzdumpfile #压缩后的后缀名
db #mysql数据库