当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux crontab定时任务配置方法(详解)

    栏目:Linux/apache问题 时间:2019-10-09 16:12

    CRONTAB概念/介绍

    crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

    cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。

    1: crontab文件一般位于/etc/下,这里面存放系统运行的的调度程序。

    [root@localhost cron]# more /etc/crontab

    SHELL=/bin/bash

    PATH=/sbin:/bin:/usr/sbin:/usr/bin

    MAILTO=root

    HOME=/

    # run-parts

    01 * * * * root run-parts /etc/cron.hourly

    02 4 * * * root run-parts /etc/cron.daily

    22 4 * * 0 root run-parts /etc/cron.weekly

    42 4 1 * * root run-parts /etc/cron.monthly

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

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

    [root@localhost cron]# ls

    oracle root

    如果你用命令crontab -r 就会删除当前用户的crontab文件,例如你切换到oracle账号下,执行了该命令,那么/var/spool/cron/oracle文件就会删除,如果要创建该文件只需要用crontab -e命令即可。注意,普通用户一般没有权限访问/var/spool/cron

    3:cron.deny 与 cron.allow文件

    /etc/cron.deny 表示不能使用crontab 命令的用户

    /etc/cron.allow 表示能使用crontab的用户。

    默认情况下,cron.allow文件不存在。如果两个文件同时存在,那么/etc/cron.allow 优先。如果两个文件都不存在,那么只有超级用户可以安排作业。

    但是让人纳闷的是cron.deny文件是空的,如下所示

    [oracle@localhost etc]$ more cron.deny

    4:cron.hourly,cron.daily,cron.monthly,cron.weekly

    [oracle@localhost etc]$ ls -lrt cron*

    -rw-r--r-- 1 root root 255 Sep 21 2004 crontab

    -rw-r--r-- 1 root root 0 May 16 2008 cron.deny

    cron.hourly:

    total 0

    cron.monthly:

    total 8

    -rwxr-xr-x 1 root root 278 Sep 29 2004 0anacron

    cron.weekly:

    total 16

    -rwxr-xr-x 1 root root 277 Sep 29 2004 0anacron

    -rwxr-xr-x 1 root root 414 Jun 6 2007 00-makewhatis.cron

    cron.daily:

    total 60

    -rwxr-xr-x 1 root root 286 Aug 14 2004 tmpwatch

    -rwxr-xr-x 1 root root 276 Sep 29 2004 0anacron

    -rwxr-xr-x 1 root root 2133 Dec 1 2004 prelink

    -rwxr-xr-x 1 root root 180 May 2 2006 logrotate

    -rwxr-xr-x 1 root root 418 Jun 6 2007 00-makewhatis.cron

    -rwxr-xr-x 1 root root 104 Aug 2 2007 rpm

    -rwxr-xr-x 1 root root 121 Aug 22 2007 slocate.cron

    lrwxrwxrwx 1 root root 28 May 16 2008 00-logwatch -> ../log.d/scripts/logwatch.pl

    cron.d:

    total 12

    -rw------- 1 root root 366 Jun 12 2007 sa-update

    -rw-r--r-- 1 root root 188 Jul 18 2007 sysstat

    CRONTAB在线手册

    注意:不同版本的Linux系统,可能crontab手册内容有所出入,请以实际版本为准。