简介
crontab是一个服务,可以配置每到某个时间条件下执行某个shell命令。
笔记
- 任务保存在/var/spool/cron目录中,其文件名与用户名一致(一个用户只有一个文件),该用户设定的全部定时任务都记录在该文件内,可以通过crontab命令查看、修改、删除该登陆用户的该文件。
- 用户所建立的任务文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段。
- 文件每一行的格式格式如下:minute hour day month week command,其中前五个字段可以使用 * 表示不使用该字段,但是至少有一个字段必须要设置有值。
特殊
前五个时间设定段,可以含如下特殊字符
- 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
- 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。
- 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。
- 正斜线(/):可以用正斜线指定时间的间隔频率(每过多少个数字),例如“0-23/2”表示每两小时执行一次,同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
常用
- 启动服务:service crond start
- 关闭服务:service crond stop
- 重启服务:service crond restart
- 重新载入配置:service crond reload
- 查看服务状态:service crond status
例子
- 每1分钟执行一次mycmd:
* * * * * mycmd
- 每小时的第3和第15分钟执行:
3,15 * * * * mycmd
- 在上午8点到11点的第3和第15分钟执行:
3,15 8-11 * * * mycmd
问题
怎么配置某个时间执行一个shell命令。
crontab [-u user] -e
,编辑某个用户的crontab文件内容,如果不指定用户,则表示编辑当前用户的crontab文件内容。