mysql定时备份、删除7天前记录,并定时同步至远程服务器

mysql定时备份、删除7天前记录,并定时同步至远程服务器

环境背景:两台centos7.1服务器A、B,A用于mysql数据库服务器,B用于远程存储数据库备份;现为大家演示:1、A做mysql定时备份并删除7天前备份记录;2、A的数据库备份记录定时同步至B

1.1 mysql备份、删除记录

  直接上干货-编写bakmysql.sh脚本(脚本路径自行选择)

vi  /usr/sbin/bakmysql.sh

  脚本内容:

#!/bin/bash
# Name:bakmysql.sh
# This is a ShellScript For Auto Mysql Backup and Delete old Backup
# To backup mysql backupdir路径自行修改
backupdir=/opt/mysqlbak
time=` date +%Y%m%d%H `
/usr/bin/mysqldump -u root --all-databases | gzip > $backupdir/databases_$time.sql.gz
# To delete old backup 7 days ago 时间设定7天前可自行修改
find $backupdir -name "name_*.sql.gz" -type f -mtime +7 -exec rm {} ; > /dev/null 2>&1
#

  在~根目录下新建 .my.cnf

# mysql用户名、密码
[mysqldump]
user=xxxxx
password=xxxxx

  更改文件权限:chmod 600 .my.cnf
  更改脚本权限:chmod +x /usr/sbin/bakmysql.sh
  可运行下脚本测试:/usr/sbin/bakmysql.sh
  此时应该你设置的backupdir路径下有备份生成,则shell脚本没问题,继续以下操作;

1.2 设置定时任务

vi /etc/crontab

  在最后一行中加入:

#表示每天1点00分执行备份
00 1 * * * root /usr/sbin/bakmysql.sh

注:crontab配置文件格式如下:
分 时 日 月 周  命令

  重启crontab:

service crond restart

2.1 文件远程同步-rsync

  首先先设置AB服务器ssh免密,否则需要手动输入密码
  ssh免密设置步骤如下:

#发起公钥请求
ssh-keygen -t rsa
#密码设置为空,直接回车即可
#将公钥上传到B服务器
ssh-copy-id userb@10.124.84.20
#需要输入B服务器密码

  编写rsync.sh脚本

#!/bin/bash
# Name:rsync.sh
# This is a ShellScript For Auto remote Backup and Delete old Backup
rsync -vzacu  --delete /opt/mysqlbak/  root@1.1.1.1:/opt/mysqlbak/ --exclude  "mysqlbak/index" -e "ssh -p 22"

  修改脚本权限:chmod +x rsync.sh
  执行测试,观察远程服务器是否同步过去文件,无问题后进行定时任务设置;

2.2 文件同步定时任务设置

  基本上同mysql定时任务设置一样:

vi /etc/crontab

  在最后一行中加入:

#表示每天2点00分执行备份
00 2 * * * root /usr/sbin/rsync.sh

  重启crontab:

service crond restart

  以上,即快速完成mysql本地化定时备份、删除冗余备份记录、远程同步备份的操作。具体命令使用可自行man学习,本文只提供一种配置思路,实现方法还有很多,可自行开发修订。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值