关于crontab和crond
定时任务?
顾名思义即固定一段时间执行一次的任务。
crontab和crond
crontab,该词来源于希腊语chronos,原意是时间。在Linux下是一个命令,用于设置周期性被执行的指令。
crond,与crontab是不可分割的,是crontab的守护进程。
crontab文件的格式
crontab命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
在/etc目录下有一个crontab文件,它是系统任务调度的配置文件,系统周期性所要执行的工作包括写缓存数据到硬盘、日志清理等。
/etc/crontab文件格式如下:
可以看出,crontab 文件中的行由 6 个字段组成,不同字段间用空格或 tab 键分隔。前 5 个字段指定定时任务运行的时间范围, 第 6 个字段是要执行的任务。其中:
1. 分钟:0-59,表示分钟数与给出值相等时执行任务
2. 小时:0-23,表示小时数与给出值相等时执行任务
3. 日期:1-31,含义同上
4. 月份:1-12,含义同上
5. 周几:0-6,含义同上,其中数值为0时表示周日
特殊字符:
1. * ——星号,代表当前值为允许范围内的所有值,如第一个字段为*表示每一分钟都执行任务,即每个都、全部的意思
2. - ——减号,代表一段区间,如第一个字段为1-3表示1、2、3分钟执行任务
3. ,——逗号,代表一些值的集合,如第一个字段为1,2,4表示1、2、4分钟执行任务
4. /n ——n代表数值,如第一个字段为/3表示每3分钟执行一次任务
例子:
#每天早上6点10分
10 6 * * * date
#1月份日早上4点
0 4 1 jan * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
crontab命令的基本用法
- crontab -u
设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数。 - crontab -l
列出当前用户的crontab任务。 - crontab -e
编辑crontab任务。 - crontab -r
删除当前的crontab任务。
测试用例
查看当前用户的crontab文件,若没有,编辑一个;
编写一个每隔1分钟往text.txt文件中输入当前时间的任务;
保存退出,并把任务运行起来;
查看test.txt文件,可以看见任务成功执行了;
删除当前crontab文件。