【实用脚本】数据库远程备份脚本
脚本作用
通过Xtrabackup实现本地不落盘备份,备份文件经过压缩直接SSH传输到备份服务器集中管理
#!/bin/bash USER=root PWD=your_mysql_password ssh_password=your_root_password MYCNF=/etc/my.cnf TO_HOST=172.20.252.10 TO_DIR=/data/backup/linuxe TAG="linuxe" INSTANCE_NAME="Linuxe" if [ ! -d /data/backup ];then mkdir /data/backup fi rpm -qa | grep sshpass > /dev/null if [ $? -ne 0 ];then yum install sshpass -y fi #如果需要邮件通知的话可以配置以下STMP信息 rpm -qa | grep mail > /dev/null if [ $? -ne 0 ];then yum install mailx -y cat << EOF >> /etc/mail.rc set from=linuxe@qq.com set smtp=smtp.exmail.qq.com set smtp-auth-user=linuxe@qq.com set smtp-auth-password=123456 set smtp-auth=login EOF fi rpm -qa | grep xtrabackup > /dev/null if [ $? -ne 0 ];then yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm -y yum install percona-xtrabackup-24.x86_64 percona-toolkit -y fi BAKFILE=${TAG}_full_backup_$(date +%F).xbstream.lz4 BACKUP_LOG=/data/backup/${TAG}_full_backup_$(date +%F).log echo > ${BACKUP_LOG} ## backup+compress+scp echo "开始物理备份 $(date +%F\ %T)" >>$BACKUP_LOG /usr/bin/xtrabackup --defaults-file=$MYCNF --backup --user=$USER --password=$PWD --no-timestamp --stream=xbstream 2>>"${BACKUP_LOG}" | lz4 -B4 | sshpass -p ${ssh_password} ssh -o StrictHostKeyChecking=no root@${TO_HOST} "cat - >$TO_DIR/$BAKFILE" #备份检查 bak_result=`grep "completed OK" ${BACKUP_LOG} |wc -l` if [ $bak_result -eq 1 ];then echo -e "数据库实例:${INSTANCE_NAME}\n备份类型:全量备份\n备份时间 $(date +%F\ %T)" | mail -s "${INSTANCE_NAME}数据库实例全量备份成功" ops@huize.com else echo -e "数据库实例:${INSTANCE_NAME}\n备份类型:全量备份\n备份时间 $(date +%F\ %T)" | mail -s "${INSTANCE_NAME}数据库实例全量备份失败" ops@huize.com fi sshpass -p ${ssh_password} scp -P22 ${BACKUP_LOG} root@${TO_HOST}:${TO_DIR}/
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论