crontab
用于定时定点执行指令
crontab文件含义
在以上各个字段中,还可以使用以下特殊字符:
- " * "代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
- "/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
- "-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
- ","分散的数字(不一定连续),如1,2,3,4,7,9。
ps:0和7表示星期天
crontab命令
- –help 获取帮助
- -u user:用于设定某个用户的crontab服务;
- file: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;
- -e:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;
- -l:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;
- -r:从/var/spool/cron目录中删除某个用户的crontab文件。
- -i:在删除用户的crontab文件时给确认提示。
crontab注意点
- crontab有2种编辑方式:直接编辑/etc/crontab文件与crontab –e,其中/etc/crontab里的计划任务是系统中的计划任务,而用户的计划任务需要通过crontab –e来编辑;
- 每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。
- crontab中的command尽量使用绝对路径,否则会经常因为路径错误导致任务无法执行。
- 新创建的cron job不会马上执行,至少要等2分钟才能执行,可从起cron来立即执行。
%在crontab文件中表示“换行”,因此假如脚本或命令含有%,需要使用%来进行转义。
crontab日志
CentOS: tail -f /var/log/cron
Ubuntu: tail -f /var/log/cron.log
注:Ubuntu 默认没有开启cron log
在w/etc/rsyslog.d/50-default.conf文件中取消#cron.* /var/log/cron.log注释符号#, 并重启rsyslog sudo service rsyslog restart