因为工作中经常需要执行一些重复任务,因此写了一些偷懒的执行脚本,但是需要定时去执行,这里就用到了crontab 。
好了,废话不多说,直接进入正题!
corntab详细说明
crontab文件的基本格式如下所示
* * * * * command
分 时 天 月 周 命令
通过 crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script 脚本。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。
crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。
前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:
- 分钟: 0-59
- 小时: 0-23
- 天:1-31
- 月: 1-12
- 星期: 0-6, 0表示星期天
- *(星号): 表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
- ,(逗号): 可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
- /(斜线): 一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 /2 代表每隔两分钟。所以 /1 和 * 没有区别
crontab例子
每天的20:30将日期信息追加home目录下的date.log中
30 20 * * * date >> /home/date.log
每月的13日,14日20:5分将日期信息最追加home目录下的date.log中
5 20 13,14 * * date >> /home/date.log
每天10点至12点之间,隔10分钟将日期信息最追加home目录下的date.log中
0,10 10,12 * * * date >> /home/date.log
每5分钟将日期信息最追加home目录下的date.log中
*/5 * * * date >> /home/date.log
crontab常用的几个命令格式
- 显示用户的crontab文件的内容
crontab -l
- 编辑用户的crontab文件的内容,新增、修改和删除定时执行脚本
crontab -e
- 删除用户的crontab文件
crontab -r
注意:这个命令会删除所有定时计划,如果只是想删除某个定时计划,可以使用命令 crontab -e