crontab定时任务详解

定时任务

# 查看所有配置的cron任务
crontab -l
# 创建定时任务
crontab -e
# crontab 启动
service crond start
# crontab 服务状态查看
service crond status
# 查看crontab 运行日志,日志目录
ll /var/log/cron*

 

/etc/crontab 文件中的每一行都代表一项任务,它的格式是:

minute  hour  day  month  dayofweek  command

minute    — 分钟,从 0 到 59 之间的任何整数

hour     — 小时,从 0 到 23 之间的任何整数

day     — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)

month    — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)

dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)

command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)

 

在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。

整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。

用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。

开头为井号(#)的行是注释,不会被处理

 

当我们要增加全局性的计划任务时,一种方式是直接修改/etc/crontab。但是,一般不建议这样做,/etc/cron.d目录就是为了解决这种问题而创建的。

例如,增加一项定时的备份任务,我们可以这样处理:在/etc/cron.d目录下新建文件backup.sh,内容如下:

    # m h dom mon dow user command

    * 1 * * * root /sbin/mon_zetc_logtar.sh

cron进程执行时,就会自动扫描该目录下的所有文件,按照文件中的时间设定执行后面的命令。

 

cron执行时,也就是要读取三个地方的配置文件:

一是/etc/crontab,这个文件中有用户名字段;

二是/etc/cron.d目录下的所有文件;

三是每个用户的配置文件,每个用户都会自动生成一个自己的crontab文件,一般位于/var/spool/cron目录下:

[root@localhost cron]# cd /var/spool/cron
[root@localhost cron]# ls
oracle root

用命令crontab -l –u root

 crontab [-u username]    //省略用户表表示操作当前用户的crontab

    -e      (编辑工作表)

    -l      (列出工作表里的命令)

    -r      (删除工作作)

如:如果你用命令crontab -r 就会删除当前用户的crontab文件,例如你切换到oracle账号下,执行了该命令,那么/var/spool/cron/oracle文件就会删除,如果要创建该文件只需要用crontab -e命令即可。 

注意,普通用户一般没有权限访问/var/spool/cron

 

其他crontab相关的文件或者文件夹

[root@datacenter01 etc]# ll /etc | grep cron
 
crontab       是设定定时任务执行文件
cron.d        是系统自动定期需要做的任务
cron.daily  是每天执行一次的job
cron.weekly 是每个星期执行一次的job
cron.hourly   是每个小时执行一次的job
cron.monthly  是每月执行一次的job
cron.deny     文件就是用于控制不让哪些用户使用Crontab的功能
anacrontab    anacrontab 的配置文件,关于anacrontab的具体作用我们会在下文说明

 

posted @ 2023-04-28 15:20  少年阿丁  阅读(172)  评论(0编辑  收藏  举报