一、crontab概述
crontab是linux平台下的定时任务,用于周期性执行任务,基本用法为:
- crontab -e:编辑当前用户的任务。
- crontab -l:查看任务是否配置成功。
使用crontab保存的任务配置文件位于/etc/crontab
和/var/spool/cron/$USER
,前者是系统默认带有的,后面是每个用户单独出来文件,这两个文件中的配置都会生效。
默认的文件内容为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # 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 |
任务的格式如其中的注释所示,先是时间配置:分钟 小时 天 月 星期
,然后是执行身份和执行的命令,满足条件后系统自动执行。要注意的事项是命令中最好不要带相对路径,否则可能会导致错误。
实际上使用crontab -e
就相当于系统帮我们执行了vi /var/spool/cron/$USER
,而crontable -l
则等价于cat /var/spool/cron/$USER
。
二、配置文件的编写
每个整点执行ls
1 |
0 * * * * root ls |
每两分钟执行一次ls
1 |
*/2 * * * * root ls |
三、属于每个用户的crontab
每个用户都有一份crontab文件,在/var/spool/cron/$USER
,正常情况下用户也是没有权限访问的,如果要设置属于用户的crontab,则需要通过crontab -e
完成。
要注意的一个问题是:编辑属于用户的crontab时,不用再指定执行的用户了,默认就是以当前用户身份运行的。
1 |
0 1 * * * ls |
评论