Centos 设置mysql每天自动备份,删除过期的备份文件

前言

本篇主要用于介绍如何在linux服务器下编写备份mysql数据库文件和清理过期备份文件的脚本,以及设置定时任务启动脚本,做到每天定时备份数据库和清理过期备份文件的需求,同时也是一个踩坑记录,本以为网上会有很多相关的博客可以一下子就弄好,没想到花了半天时间,踩了不少坑,有些博客没有写清楚,只是简单地贴了一下命令,应该注意的地方也没有提示,所以这里记录下,希望可以帮到更多人。

整个流程主要分为:

创建备份数据库的文件夹;
编写备份数据库以及清理过期文件的脚本;
编写定时任务,定时启动脚本

创建备份文件夹

# 创建备份文件存放目录
mkdir /home/mysql_data_back

##自动备份,删除过期的脚本

#创建脚本文件autobackupmysql.sh
vim /home/autobackupmysql.sh

#将下面的文本贴入到autobackupmysql.sh,生成文件格式 STAR_D1_20200606_012530.sql;保留7天的数据
db_user="root"
db_pwd="root"
db_name1="STAR_D1"
db_name2="STAR_D2"
bak_dir="/home/mysql_data_back"
time="$(date +"%Y%m%d_%H%M%S")"
#backup  STAR_D1 data
mysqldump -u$db_user  -p$db_pwd -h127.0.0.1 -P3306 $db_name1 > $bak_dir/${db_name1}_$time.sql
#backup  STAR_D2 data
mysqldump -u$db_user  -p$db_pwd -h127.0.0.1 -P3306 $db_name2 > $bak_dir/${db_name2}_$time.sql
#remove out-date backup
find $bak_dir -name "$db_name1*.sql" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
find $bak_dir -name "$db_name2*.sql" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1

# 赋予autobackupmysql.sh 执行权限
chmod 777 /home/autobackupmysql.sh

编写定时任务,定时启动脚本

# 启动定时任务
service crond start
# 赋予开机自动启动
chkconfig --level 345 crond on
# 编写定时任务脚本
crontab -e
# 写入文件--每天凌晨3点执行autobackupmysql.sh
00 03 * * * source /home/autobackupmysql.sh
# 重新启动定时任务
service crond start
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值