当前用户任务
- 查看当前用户任务,crontab -l
- 新增任务, crontab -e
- 规则
几个要注意的符号# crontab基本格式 # +---------------- minute 分钟(0 - 59) # | +------------- hour 小时(0 - 23) # | | +---------- day 日期(1 - 31) # | | | +------- month 月份(1 - 12) # | | | | +---- week 星期(0 - 7) (星期天=0 or 7) # | | | | | # * * * * * command
"*" any的意思 "," or的意思 "-" 表示范围 "/" 每隔n个单位. 如, 8和9期间每隔5分钟执行一次任务: */5 8,9 * * * 或 */5 8-9 * * *
- 生效, cron服务每分钟检测一次,因此,修改完后一分钟生效
- p.s 如果是root用户, 可以看到, crontab -e 内容在 /var/spoon/cron/root 里
系统任务, 需要root身份
- 新增任务,
vi /etc/crontab
, /etc/crontab内容:
#使用何种shell接口
SHELL=/bin/bash
#执行文件路径
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#有输出时,以email将数据推送给谁
MAILTO=root
# For details see man 4 crontabs
# 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
-
规则: 与用户任务基本相同, 不同的是,在 执行周期和commad之间需要指定用户身份.
-
如果需要手动生效,可以使用
service crond reload
或service crond restart
-
其他
/etc/cron.deny :不允许使用crontab命令的用户。
/etc/cron.allow :允许使用crontab命令的用户。
/var/spool/cron :所有用户的crontab命令存放位置。
/var/log/cron : 已运行的任务
- crontab 与 crond , crond 是实际执行定时指令的程序或服务. crontab 则是用来设置需要定时执行的命令的指令. 不要混淆误解了.
- p.s 实际上的cron表达式还包含了,秒,年,L(last最后,用在日期或星期),?(日期和星期互斥占位),#(星期如3#2,第二周的第三天)等符号。