centos7定时备份mysql并上传到其它服务器异地备份

7 篇文章 0 订阅

服务器需要安装sshpass

yum install -y sshpass

shell脚本

#!/bin/bash


MYSQLDB=mcms
BAK_DIR=/backup/mysql8019/$MYSQLDB

if [ $UID -ne 0 ];then
        echo "Must to be use root for exec shell."
fi

if [ ! -d $BAK_DIR ];then
        mkdir -p $BAK_DIR
        echo -e "\033[32mTHE $BAK_DIR Create successfully!\033[0m"
else
        echo "This $BAK_DIR is exists... "
fi

####### Mysql Backup command ####### 

#删除7天前的备份文件
/usr/bin/find $BAK_DIR -mtime +7 | xargs rm -rf
#备份数据库为sql文件
/usr/bin/mysqldump $MYSQLDB > $BAK_DIR/`date +%Y%m%d`.sql
if [ $? -eq 0 ];then
        echo -e "\033mThe Mysql Backup $MYSQLDB Succeesfully!\033[0m"
else
        echo -e "\033mThe Mysql Backup $MYSQLDB Failed,please check!\033[0m"
fi
#判断目的服务器是否存在目标文件夹,不存在则创建
/usr/bin/sshpass -p123456 /usr/bin/ssh -p 22 admin@www.imwork.net <<EOF
	if [ ! -d $BAK_DIR ];then
		mkdir -p $BAK_DIR
	fi
EOF
#上传sql文件到目的服务器
/usr/bin/sshpass -p123456 /usr/bin/scp -P 22 $BAK_DIR/`date +%Y%m%d`.sql admin@www.imwork.net:$BAK_DIR

if [ $? -eq 0 ];then
        echo -e "\033mThe Mysql upload $MYSQLDB Succeesfully!\033[0m"
else
        echo -e "\033mThe Mysql upload $MYSQLDB Failed,please check!\033[0m"
fi


配置每天晚上2点执行定时任务

crontab -e 
0 2 * * * /usr/bin/bash bakcup_mysql.sh &> /backup/mysql8019/backup_$(date +\%F_\%T).log
:wq

如果crontab没启动,请启动

systemctl start crond.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值