mysql 备份至远程服务器失败_mysqldump跨实例备份到远程主机

备份脚本:

#!/bin/bash

set -eu

exclude_acc_tables=(acc.tb1 acc.tb2 acc.tb3)

exclude_tms_tables=(tms.tb1 tms.tb2 tms.tb3)

exclude_tms_string=''

exclude_acc_string=''

for tms_tb in "${exclude_tms_tables[@]}"

do

exclude_tms_string+=" --exclude-tables=${tms_tb}"

done

for acc_tb in "${exclude_acc_tables[@]}"

do

exclude_acc_string+=" --exclude-tables=${acc_tb}"

done

backfiledir=/logs/mysqlbackupfile

backuplist=/data/scripts/mysqlscripts/dumplist

backuptype=mysqlpump

center_DB_IP=192.168.2.100

center_DB_Port=3306

basedir=/usr/local/mysql/bin

username=root

passwd=BullShit@anquan1.COM

for dbname in `cat $backuplist`

do

remoteIP=`echo $dbname|cut -d '_' -f 1`

BACKUPStarttime=`date +%Y%m%d%H%M%S`

if [ "$remoteIP" == "192.168.2.101" ]; then

$basedir/mysqlpump --user=$username --password=$passwd --host=$remoteIP -A --single-transaction --default-parallelism=8 --exclude-databases=db_name --default-character-set=utf8 ${exclude_tms_string} | gzip > $backfiledir/$dbname.$BACKUPStarttime.gz

BACKUPendtime=`date +%Y%m%d%H%M%S`

backupfileSize=`du -sh $backfiledir/$dbname.$BACKUPStarttime.gz |cut -f 1`

if [ "$backupfileSize" = "0" -o "$backupfileSize" = "4.0K" ];then

echo $dbnam backup failed! > $backfiledir/backup_result

/usr/bin/python /data/scripts/mysqlscripts/mysql_backup_result.py

else

echo "$dbname backup successful!" > $backfiledir/backup_result

rsync -P $backfiledir/$dbname.$BACKUPStarttime.gz rsync_backup@192.168.2.200::backup/mysqlbak --password-file=/etc/rsync.password

/usr/bin/python /data/scripts/mysqlscripts/mysql_backup_result.py

fi

else

BACKUPStarttime=`date +%Y%m%d%H%M%S`

$basedir/mysqlpump --user=$username --password=$passwd --host=$remoteIP -B db_name --single-transaction --default-parallelism=8 --default-character-set=utf8 ${exclude_acc_string} | gzip > $backfiledir/$dbname.$BACKUPStarttime.gz

BACKUPendtime=`date +%Y%m%d%H%M%S`

backupfileSize=`du -sh $backfiledir/$dbname.$BACKUPStarttime.gz |cut -f 1`

if [ "$backupfileSize" = "0" -o "$backupfileSize" = "4.0K" ];then

echo $dbname backup failed! > $backfiledir/backup_result

/usr/bin/python /data/scripts/mysqlscripts/mysql_backup_result.py

else

echo "$dbname backup successful!" > $backfiledir/backup_result

rsync -P $backfiledir/$dbname.$BACKUPStarttime.gz rsync_backup@192.168.2.200::backup/mysqlbak --password-file=/etc/rsync.password

/usr/bin/python /data/scripts/mysqlscripts/mysql_backup_result.py

fi

fi

done

find $backfiledir/ -mtime +10 |xargs rm -rf

python发送钉钉通知脚本:

#!/usr/local/python3/bin/python3

#coding:utf-8

#数据库备份结果钉钉报警

import requests,json,sys,os,datetime

txt=open('/logs/mysqlbackupfile/backup_result','r')

msg=txt.read()

def info():

url = 'https://oapi.dingtalk.com/robot/send?access_token=c5e20a649e2882f04a0f6eaf240ae7d125853af43e35546440209bc714773277'

headers = {'Content-Type': 'application/json;charset=utf-8'}

formdata = {"msgtype": "text","text": {"content":str(msg)}}

hhh = requests.post(url=url, data=json.dumps(formdata), headers=headers)

print(hhh.text)

if __name__ == '__main__':

info()

txt.close()

dumplist:

192.168.2.102_mysql1_accountdb

192.168.2.101_mysql2_tmsdb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值