Linux
系统的crontab
是用来定期执行程序的命令,简单总结一下使用方法
首先要说的是,linux
任务调度的工作主要分为以下两类:
- 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
- 个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有信息,这些工作可由每个用户自行设置
系统任务
可以通过编辑/etc/crontab
文件给所有角色分配任务,格式如下1
minute hour day month week user command
字段含义如下
- minute: 表示分钟(0-59)
- hour: 表示小时(0-23)
- day: 表示日期(1-31)
- month: 表示月份(1-12)
- week: 表示星期几(0-7,这里的0和7代表周日)
- user: 执行命令的用户名
- command: 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件等
在以上各个字段中,还可以使用以下特殊字符:
- 星号(*):代表所有可能的值,例如
minute
字段如果是星号,则表示在满足其它字段的制约条件后每每分钟都会执行 - 逗号(,):可以用逗号隔开的值指定一个列表范围,例如’1,2,3,6’
- 中杠(-):可以用整数之间的中杠表示一个整数范围,例如’2-6’表示’2,3,4,5,6’
- 正斜线(/):可以用正斜线指定时间的间隔频率,例如’0-23/2’表示每两小时执行一次
修改
/etc/crontab
这种方法只有root
用户能用,这种方法更加方便的直接给其他用户设置计划任务,指定执行命令等
用户任务
Linux
用户登录时,可以使用crontab -e
编辑自身的定时任务,具体的使用方法如下1
2crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
命令参数含义
- -u user:用来设定某个用户的
crontab
服务,此参数一般由root
用户来运行 - file:
file
是命令文件的名字,表示将file
做为crontab
的任务列表文件并载入crontab
- -e:编辑某个用户的
crontab
文件内容,默认为自身 - -l:显示某个用户的
crontab
文件内容,默认为自身 - -r:删除某个用户的
crontab
文件,默认为自身 - -i:在删除用户的
crontab
文件时给确认提示
此外,可以在
/var/spool/cron
目录查看用户crontab
配置文件
在编辑任务时,和系统任务相比少了角色的配置,其他参数相同1
minute hour day month week command
举一些栗子
每1分钟执行一次command1
* * * * * command
每天早上7点半执行1
30 7 * * * command
每小时的第3和第15分钟执行1
3,15 * * * * command
在上午8点到11点的第3和第15分钟执行1
3,15 8-11 * * * command
每隔两天的上午8点到11点的第3和第15分钟执行1
3,15 8-11 */2 * * command
每个星期一的上午8点到11点的第3和第15分钟执行1
3,15 8-11 * * 1 command