linux下实现mysql数据库每天自动备份并删除N天前数据

1、创建shell脚本

注意把以下命令中的DatabaseName换为实际的数据库名称; 
当然,你也可以使用其实的命名规则!

vi bkDatabaseName.sh

我是对备份的数据进行压缩备份所以shell脚本的内容是

#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /opt/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

find /opt -mtime +10 -name "*.*" -exec rm -rf {} \;

其中username填写你数据库的用户吗 password填写你数据库的密码   DatabaseName 填写你要备份的数据的名称

然后 /opt/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz 表示备份到/opt的目录下 后面就是创建的文件名的时间的正则

语句写法:
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

删除N天前数据:
find /opt -mtime +10 -name "*.*" -exec rm -rf {} \;
将/opt目录下所有10天前带"."的文件删除

find:linux的查找命令,用户查找指定条件的文件
/usr/local/backups:想要进行清理的任意目录
-mtime:标准语句写法
+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
"*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三
-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \; :固定写法,一对大括号+空格+\+;

注意:

需要在linux下使用vi命令进行编辑shell脚本,如果在windows下直接创建然后上传的话由于内部的格式不同,会导致从windows上传的shell脚本在linux下执行的时候不可用.

2、cd到shell脚本的路劲下,给shell脚本添加可执行权限

chmod u+x bkDatabaseName.sh

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

./bkDatabaseName.sh

3、添加计划任务

检测或安装 crontab

确认crontab是否安装: 
执行 crontab 命令如果报 command not found,就表明没有安装

# crontab
-bash: crontab: command not found

输入后没有任何反应表示已安装crontab

如时没有安装 crontab,需要先安装它,具体步骤请参考: 
CentOS下使用yum命令安装计划任务程序crontab 
使用rpm命令从CentOS系统盘安装计划任务程序crontab

添加计划任务

执行命令:

crontab -e

这时就像使用vi编辑器一样,可以对计划任务进行编辑。 
输入以下内容并保存:

*/1 * * * * /opt/bkDatabaseName.sh

具体是什么意思呢? 
意思是每一分钟执行一次shell脚本“/opt/bkDatabaseName.sh”

时间的格式是

分 时 日 月 周

此时定时任务已创建成功。

附加:

.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
表示解压缩:FileName.gz文件  解压完之后压缩文件会消失 

 

转载于:https://my.oschina.net/zrz1992/blog/1572631

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值