crontab指令的作用是周期性的自动执行文件。
目录
比如我需要每天晚上7点执行一个文件,那么就可以使用crontab指令,使linux操作系统自动执行。
下面介绍crontab指令的用法:
先检查是否安装
- crontab -l
- # 如果“no crontab for root”说明没有安装。
安装指令
- yum -install -y vixie-cron
- yum -install -y crontabs
首先我们需要知道几个实用参数。
crontab -e 编辑crontab指令
crontab -l 查看当前crontab指令
crontab -r 删除本用户crontab指令
crontab -e
虽然该页面看着别扭,但它其实就是vim编辑器,所以使用方式与vim编辑器一致。
crontab指令的格式如下:
分钟 小时 日期 月份 星期 具体指令
参数范围:
分钟 | 0 ~ 59 |
小时 | 0 ~ 23 |
日期 | 1 ~ 31 |
月份 | 1 ~ 12 |
星期 | 0 ~ 7 //0和7都是星期日 |
特殊参数:
参数符号 | 参数含义 | 参数实例 |
* | 全部时间 | 0 5 * 7 * clear #在7月每一天5点整执行clear |
start/num | start开始每隔num时间执行 | */10 * * * * clear #每隔10分钟执行clear |
- | 范围时间内执行 | * 5-6 * * * clear #每天5点到6点执行clear |
, | 指定时间执行 | 0 5,14,21 * * * clear #每天5点14点21点整执行clear |
举几个例子:
① 每月1号零点整删除data.txt文件
0 0 1 * * rm -f data.txt
②每隔90分钟执行ls指令
这个实现稍特殊,我们不能一行指令实现它,所以可以使用两个来合作实现。
90 * 2 = 180分钟,正好是3个小时。
一个从0点开始,每隔3小时执行。//0、3:00、6:00...
一个从1:30开始,每隔3小时执行。//1:30、4:30、7:30...
组合起来就是每隔90分钟执行。
- 0 0/3 * * * ls
- 30 1/3 * * * ls
crontab -r是直接删除该用户所有crontab指令。
如果想单独删除就使用crontab -e来具体编辑。
我们可以首先写一个shell文件,在写crontab指令时直接调用该指令,以防需实现的指令过多造成编辑和阅读困难。
比如我们要每天7点整执行一个hello.c文件。
可以编写一个hello.sh文件,里面执行./hello
注意hello.sh需要赋予可执行权限。
在crontab指令中实现0 7 * * * ./hello.sh即可。
要注意,此时程序结果是在后台运行的。
如果还没想清楚,就用蛮力算法。——Ken Thompson
如有错误,敬请斧正