Linux定时备份MySQL数据库脚本

之前记录下了window系统备份远程MySQL数据库的定时备份脚本(想要了解的可以去看看> windows压缩备份MySQL数据库),Linux系统的忘记记录了。这次把它也保存下来。

脚本内容非常简单,主要是利用MySQL的备份系统来做这件事。

#!/bin/bash
mysqldump -hlocalhost -u[username] -p[password] [database] | gzip > /backup/database_$(date +%Y%m%d_%H%M%S).sql.gz

workdir="/backup/"

do_delete()
{
	file_name=$(find $workdir -name '*.sql.gz' -and -mtime +7  -type f -print)
    	echo file name is ${file_name}

        find $workdir -name '*.sql.gz' -and -mtime +7 -type f -delete
        if [ $? -eq 0 ];then
            echo $(date) delete $(basename ${file_name}) success!             
        else
            echo $(date) delete ${file_name} FAILD!
         fi

}
do_delete

在根目录创建一个backup文件夹,将脚本放在这个文件夹内,给脚本可执行权限。

下面我们要用到的是Linux的crontab命令。

crontab常用参数如下:

  • -e 编辑工作表
  • -l列出工作表中的命令
  • r删除工作表
  • u [username] 操作某用户的工作表,省略则默认是当前用户的工作表

使用crontab -e编辑工作表,在工作表中加入下面的内容,让脚本每天凌晨3点执行。

0 3 * * * /backup/bakdb.sh

内容的规则如下:

 .---------------- 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,fri,sat
 |  |  |  |  |
 *  *  *  *  * user-name 指定其他用户调度,如果不需要则不指定

*表示每年每月每天每时每分都执行该任务。

任务添加好了之后可以将crond服务重启:service crond restart

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值