linux下使用定时任务完成mysql定期备份

Crontab相关

首先,定时任务需要安装crontab

执行crontab 命令如果报command not found,就表明没有安装

 

crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。可以用以下的方法启动、关闭这个服务:

 

/sbin/service crond start //启动服务

 

/sbin/service crond stop //关闭服务

 

/sbin/service crond restart //重启服务

 

/sbin/service crond reload //重新载入配置

 

1.linux任务调度的工作主要分为以下两类:

 

*系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存

 

*个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

 

2.crontab命令选项:

 

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

 

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

 

crontab -l //列出某个用户cron服务的详细内容

 

crontab -r //删除没个用户的cron服务

 

crontab -e //编辑某个用户的cron服务

 

比如说root查看自己的cron设置:crontab -u root -l

 

再例如,root想删除fred的cron设置:crontab -u fred -r

 

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

 

进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

 

3.cron文件语法

 

   分     小时      日       月       星期      命令

 

 0-59   0-23   1-31  1-12     0-6     command    (取值范围,0表示周日一般一行对应一个任务)

 

4.记住几个特殊符号的含义:

 

"*"代表取值范围内的数字,

 

"/"代表"每",

 

"-"代表从某个数字到某个数字,

 

","分开几个离散的数字

 

5.举几个例子

 

5      *       *       *     *     ls              //指定每小时的第5分钟执行一次ls命令

 

30    5       *       *     *     ls              //指定每天的 5:30 执行ls命令

 

30    7       8       *     *      ls             //指定每月8号的7:30分执行ls命令

 

30    5       8       6     *      ls             //指定每年的6月8日5:30执行ls命令

 

30    6       *       *     0      ls             //指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

 

30    3   10,20     *     *      ls             //每月10号及20号的3:30执行ls命令[注:”,”用来连接多个不连续的时段]

 

25    8-11  *        *    *      ls             //每天8-11点的第25分钟执行ls命令[注:”-”用来连接连续的时段]

 

*/15  *      *        *    *      ls            //每15分钟执行一次ls命令 [即每个小时的第0 1530 45 60分钟执行ls命令 ]

 

30    6    */10      *    *      ls            //每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。 ]

 

50   7       *         *    *     root run-parts /etc/cron.daily   //每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

 

备份相关

安装完成后,就可以编写shell脚本进行定期备份mysql了

创造一个shell文件

vi DatabaseName.sh(名字随便取)

 

输入:

#!/bin/bash

mysqldump -uusername -ppasswordDatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

 

注:username为账号名password为密码DatabaseName为要备份的数据库,如果没有权限,可以使用root账户进行备份,保存路径自己定。

 

如果要进行压缩,使用如下命令:

#!/bin/bash

mysqldump -uusername -ppasswordDatabaseName | gzip > /home/backup/DatabaseName_$(date+%Y%m%d_%H%M%S).sql.gz

 

编写完毕后,可以先运行一下看是否可以使用。

./bkDatabaseName.sh

 

如果可以使用,那么添加到计划任务。

crontab –e

和vi一样可以进行编辑。然后添加任务,比如

*/1 * * * * /home/backup/bkDatabaseName.sh

 

注:此命令效果为每分钟执行一次,时间设置参考Crontab相关。

 

保存退出然后定时完成备份的效果就完成了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值