一、crontab概述
crontab是linux平台下的定时任务,用于周期性执行任务,基本用法为:
- crontab -e:编辑当前用户的任务。
- crontab -l:查看任务是否配置成功。
使用crontab保存的任务配置文件位于/etc/crontab
和/var/spool/cron/$USER
,前者是系统默认带有的,后面是每个用户单独出来文件,这两个文件中的配置都会生效。
默认的文件内容为:
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:
0 * * * * root ls
每两分钟执行一次ls:
*/2 * * * * root ls
三、属于每个用户的crontab
每个用户都有一份crontab文件,在/var/spool/cron/$USER
,正常情况下用户也是没有权限访问的,如果要设置属于用户的crontab,则需要通过crontab -e
完成。
要注意的一个问题是:编辑属于用户的crontab时,不用再指定执行的用户了,默认就是以当前用户身份运行的。
0 1 * * * ls
此处评论已关闭