加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Linux下Shell脚本简单实现Mysql全量备份+rsync异地备份

发布时间:2023-01-05 07:30:59 所属栏目:MySql教程 来源:互联网
导读: 图/文:迷神
mysql的数据库备份是一个搞linux运维的基本技能,备份方法有很多种,我们这里使用一个简单的方法,利用mysqldump这个工具,结合Shell脚本简单实现Mysql自动全量备份+rsync异地

图/文:迷神

mysql的数据库备份是一个搞linux运维的基本技能,备份方法有很多种,我们这里使用一个简单的方法,利用mysqldump这个工具,结合Shell脚本简单实现Mysql自动全量备份+rsync异地备份功能。

linux备份mysql数据库_mysql rds备份_mysql备份

大致思路如下:

1、先备份数据库,可以指定一些数据库(可压缩)

2、基于ssh免密登录,利用rsync实现异地备份。

3、同步之后,保留30天数据库(可自行设置任意天数)

执行代码如下:

#! /bin/bash
#by mishen
BAKDIR="/data/mysql"
MYSQLUSR="数据库账户"
MYSQLPW="数据库密码"
#写入日志文件
LOG=/var/log/mysqlbackup.log
NOW=`date +%Y-%m-%d-%H:%M`
[ ! -d $BAKDIR ] && mkdir -p $BAKDIR
echo "-------------Start-------------" >>$LOG
echo "Start at `date`" >>$LOG
#备份3个数据库
for db in mydb1 mydb2 mydb3
  do
     mysqldump -u$MYSQLUSR -p$MYSQLPW $db | gzip >  $BAKDIR/$db-$NOW.sql.gz
     if [ $? == 0 ];then
         echo "$NOW--$db  backup succeeded!" >> $LOG
     else
         echo "$db backup failed!" >> $LOG
     fi
done
#利用 rsync 同步远程服务器
rsync -az  --delete  /data/mysql/* root@xxx.xxx.xxx.xxx:/mysql/backup
if [ $? == 0 ];then
     echo "$NOW Remote rsync succeeded!" >> $LOG
else
     echo "$NOW Remote rsync failed!" >> $LOG
fi
#保留30的
find $BAKDIR -type f -mtime +30 |xargs rm -rf
echo "End at `date`" >>$LOG
echo "-------------End-------------" >>$LOG

给脚本命令,比如我常用的mysql_backup.sh,给脚本添加可执行权限

chmod +x mysql-backup.sh

设置计划任务

定时执行该shell脚本
crontab -e
0 1 * * * /home/mysql-backup.sh

好了,大致就这样了。这里如果不知道怎么rsync同步的可以自行百度下,网上教程一堆,也比较简单mysql备份,当然,也可以使用方法。

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!