crontab 的白名单与黑名单
在系统的 /etc目录下可能会有两个使用 crontab 的限制文件。
一个可以叫做白名单/etc/cron.allow,用来记录那些用户可以使用 crontab。
另一个叫做黑名单 /ect/cron.deny,用来限制那些不用户不能使用 crontab黑名单对root 是无效的。
当两个文件都存在时,以 白名单为准。当两个文件都不存在时,只有root可以。一般系统中只有黑名单文件,因为每个用户所执行的定时任务都与他自身的用户权限有关。
命令介绍
crontab [选项]
# 选项:
-e :使用 vim 编辑 crontab 定时任务,可添加或删除,默认为空,只需按照格式写入即可
-l :查询 crontab 任务,以打印的方式
-r :删除当前用户所有的 crontab 任务
如果要设定定时任务,在命令行下输入 crontab -e 进入vim 编辑页面,默认是空白文件,此时需要按照下面的格式去书写定时任务:
* * * * * 执行的任务
crontab 任务格式一共有六项,前五个“ * ” 指定时间,分别是分钟、小时、日、月、周。最后一项是要执行的任务。
* 的具体含义:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
特殊符号含义
符号 | 含义 | 举例 |
---|
* | 表示任意时间的意思 | 比如 “* * * * * 任务” 就代表每分钟执行一次 |
, | 代表不连续的时间 | 比如 “ 0 1,3 * * * 任务” 就代表每天的1点整,3点整分别都执行一次 |
- | 代表连续的时间范围 | 比如 “0 2 * * 1-3 任务” 就代表每周一到周三的凌晨2点0分执行任务 |
*/n | 代表每隔多久执行一次 | 比如 “/30 * * * 任务” 就代表每三十分钟执行一次任务 |
指定用户
如果需要指定用户执行定时任务,可以在配置文件/etc/crontab中添加内容,需要在上面的格式命令之前加上用户名
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed