定时备份mysql数据库

今天闲来无事,研究了定时备份mysql数据库,抛去那些复杂的流程,还是很简单的!
1、创建备份目录

  • cd /home
  • mkdir backup

2、创建备份Shell脚本:

  • vim dbback.sh

  • 写入内容:

    #!/bin/bash
    mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql1

    或者对备份进行压缩:
    #!/bin/bash
    mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

注意:

把 username 替换为实际的用户名;

把 password 替换为实际的密码;

把 DatabaseName 替换为实际的数据库名;

3、添加可执行权限:
chmod u+x dbback.sh

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

./dbback.sh
这时,不出意外,/home/backup的目录下就有了备份文件

4、添加计划任务
添加计划任务

执行命令:

  • crontab -e

这时就像使用vi编辑器一样,可以对计划任务进行编辑。

输入以下内容并保存:

  • */1 * * * * /home/backup/dbback.sh

具体是什么意思呢?

意思是每一分钟执行一次shell脚本

也可以指定其他时间,依照自己的需求来~

5、测试任务是否执行
很简单,我们就执行几次“ls”命令,看看一分钟过后文件有没有被创建就可以了!

如果任务执行失败了,可以通过以下命令查看任务日志:

  • tail -f /var/log/cron

6、添加删除数据功能
在dbback.sh 脚本文件中添加一下命令:
#删除一分钟之前的备份文件

  • find /home/backup -name DatabaseName “*.sql.gz” -type f -mmin +1
    -exec rm -rf {} ; > /dev/null 2>&1

说明:
-type f 表示查找普通类型的文件,f表示普通文件。
-mtime +7 按照文件的更改时间来查找文件,+7表示文件更改时间距现在7天以前;如果是 -mmin +7表示文件更改时间距现在7分钟以前。
-exec rm {} ; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号。
/dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的&表示让该命令在后台执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值