crontab 删除mysql数据_linux crontab 备份,mysql定时备份,定时删除N天前的老备份数据...

linux crontab 备份,mysql定时备份,定时删除N天前的老备份数据

发布时间:2018-04-30作者:laosun阅读(1995)

0f9e8264915948f7a1174b4a48c40c63.gif

linux定时备份mysql,并且定时删除N天前的老备份数据。下面来看制作备份的方法

首先,我们找个目录创建sh可执行文件。博主是在root下创建的备份文件[root@iZ255gji7lwZ ~]# cd /root/

[root@iZ255gji7lwZ ~]# vim mysql_backup.sh #创建新sh文件

[root@iZ255gji7lwZ ~]# chmod 774 mysql_backup.sh #增加可执行权限

mysql_backup.sh 内容为:

#执行备份操作

username=xxxxxxx

password=xxxxxxx

date=`date +%Y%m%d`

dbname=d_sunjs

/usr/local/mysql/bin/mysqldump -u $username -p$password $dbname > /mnt/work/databases/d_sunjs_$date.sql

#删除2天前的备份,+2表示2天前的数据

rm -rf $(find /mnt/work/databases/ -mtime +2 -name "*.sql")

我们来运行一下

[root@iZ255gji7lwZ ~]# ./mysql_backup.sh

去/mnt/work/databases目录下看有没有,如果有则备份成功。

下边我们来测试删除的成功与否,为了方便测试,这里我们需要修改一下文件的创建的日期

[root@iZ255gji7lwZ databases]# ll

总用量 747020

-rw-r--r-- 1 root root 4月  27 20:43 d_sunjs_20180427.sql

-rw-r--r-- 1 root root 4月  28 20:43 d_sunjs_20180428.sql

-rw-r--r-- 1 root root 4月  30 20:43 d_sunjs_20180430.sql

我已经修改了27和28这两个文件的创建日期以及名字(为了方便识别)。

[root@iZ255gji7lwZ databases]# mv d_sunjs_20180430.sql d_sunjs_20180429.sql  #修改文件名

[root@iZ255gji7lwZ databases]# touch  -d "1 days ago" d_sunjs_20180429.sql  #修改文件的创建日期

[root@iZ255gji7lwZ databases]# ll

总用量 747020

-rw-r--r-- 1 root root 4月  27 20:43 d_sunjs_20180427.sql

-rw-r--r-- 1 root root 4月  28 20:43 d_sunjs_20180428.sql

-rw-r--r-- 1 root root 4月  29 20:53 d_sunjs_20180429.sql

下边我们再来执行一遍备份

[root@iZ255gji7lwZ databases]# . /root/mysql_backup.sh

Warning: Using a password on the command line interface can be insecure.

[root@iZ255gji7lwZ databases]# ll

总用量 747020

-rw-r--r-- 1 root root 4月  28 20:43 d_sunjs_20180428.sql

-rw-r--r-- 1 root root 4月  29 20:53 d_sunjs_20180429.sql

-rw-r--r-- 1 root root 4月  30 20:55 d_sunjs_20180430.sql

看上边是已经把27号的备份给删除了,并且新增加了备份30.sql,测试成功!!!

增加定时器

[root@iZ255gji7lwZ databases]# vim /etc/crontab

[root@iZ255gji7lwZ databases]# . /root/mysql_backup.sh

Warning: Using a password on the command line interface can be insecure.

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,ff

ri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

#上边是默认的文件内容

#我们来增加我们自己的定时器

* 1 * * * root /root/mysql_backup.sh  #新增每天凌晨1点进行备份。保存退出

重启一下crontab

[root@iZ255gji7lwZ databases]# /etc/rc.d/init.d/crond restart

停止 crond:                                               [确定]

正在启动 crond:                                           [确定]

或者使用systemct1来重新加载

systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

[root@laosun ~]# systemctl restart crond

af499b9437efec8e1b25c2bb396e60d7.png

2 +1

版权声明

发表评论

请文明留言

发表

共 0 条评论

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值