一、crontab概述

crontab是linux平台下的定时任务,用于周期性执行任务,基本用法为:

  • crontab -e:编辑当前用户的任务。
  • crontab -l:查看任务是否配置成功。

使用crontab保存的任务配置文件位于/etc/crontab/var/spool/cron/$USER,前者是系统默认带有的,后面是每个用户单独出来文件,这两个文件中的配置都会生效。

默认的文件内容为:

pic_1805241153.jpg

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
最后修改:2019 年 06 月 19 日
如果觉得我的文章对你有用,请随意赞赏