crontab详解

作者: whisshe | 来源:发表于2018-09-25 14:16 被阅读6次


    目录

    简单介绍

    crontab是一个可以根据时间、日期、月份、星期的组合调度对重复任务的执行的守护进程。

    要使用cron服务,你必须安装了vixie-cron RPM软件包,而且必须在运行crond服务。判断该软件包是否安装,使用rpm -q vixie-cron来确定。判断服务是否在运行,使用service crond status来确定。

    配置文件介绍

    Linux下的任务调度分为两种:系统任务调度和用户任务调度。

    系统任务调度

    系统周期性要执行的工作,比如写缓存数据到硬盘、日志清理。/etc/crontab是系统任务调度的配置文件。包含下列几行:

    前四行是用来配置crond任务运行的环境变量。第一行SHELL变量指定了crond使用shell环境。这里使用的是bash;第二行是PATH指定了系统指定了系统执行命令的PATH;第三行MAILTO指定了crond的任务执行信息通过邮件发送到的用户,这里是发送给root;第四行的HOME指定的是执行命令或者脚本的主目录。

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO="root"
    HOME=/
    
    # run-parts
    51 * * * * root run-parts /etc/cron.hourly
    24 7 * * * root run-parts /etc/cron.daily
    22 4 * * 0 root run-parts /etc/cron.weekly
    42 4 1 * * root run-parts /etc/cron.monthly
    

    用户任务调度

    用户定期执行的任务,比如用户的数据备份,脚本执行等等。用户可以使用crontab定制自己的计划任务,用户定义的计划任务会被保存在/var/spool/cron目录下。文件会以用户名进行命名,还可以对用户的使用权限进行定义。

    /etc/cron.deny    #文件中列出的用户不能使用crontab
    /etc/cron.allow   #文件中列出的用户可以使用crontab
    /var/spool/cron   #用户crontab计划任务文件存放目录
    

    crontab文件介绍

    crontab文件中,每一行代表一个任务;每行有六列,每列代表一项设置,前五列为时间频率设定,第六列是要执行的任务。示例:

    minute hour day mouth week command  #分 时 日 月 周 命令
    

    minute表示分钟,可以是0~59的任意整数。
    hour表示小时,可以是2~23的任意整数
    day表示日期,可以是1~31的任意整数
    month表示月份,可以是1~12的任意整数
    week表示星期几,可以是0~7之间的整数,0或者7表示星期天
    command表示执行的命令

    上面的设置除了数字之外还可以使用特殊字符:
    星号*:表示所有可能的值,可以理解为
    逗号,:用逗号隔开的值表示一个列表范围,如1,2,3 * * * *每天每小时的第一、第二、第三分钟。
    中杠-:用中杠隔开的值表示一个数值范围,如1-10 * * * *每天每小时的1到10分钟。
    正斜线/:指定执行任务的间隔频率,如 0 10-18/2 * * *每天的十点到十八点间隔2小时执行。

    crontab实例

    # 每分钟执行一次
    * * * * * 
    # 每小时的第3和第15分钟执行
    3,15 * * * *
    #在上午的8点到11点的第3和第15分钟执行
    3,15 8-11 * * *
    #在每隔2天的上午8点和11点的第3和第15分钟执行
    3,15 8-11 */2 * *
    #每个星期一的上午8点到11点的第3和第15分钟执行
    3,15 8-11 * * 1
    #每晚的21:30执行
    30 21 * * *
    #每月1、10、22日的4:30执行
    30 4 1,10,22 * *
    #每周六、日1:10执行
    10 1 * * 6,7
    #每天18:00到23:00之间每隔30分钟执行
    0/30 18-23 * * *
    #星期六的23:00执行
    0 23 * * 6
    #每小时执行一次
    * */1 * * *
    #晚上11点到早上7点之间,每小时执行一次
    * 23-7/1 * * *
    #每月的4号与每周一到周三的11点
    0 11 4 * 1-3
    #一月一号的4点
    * 4 1 1 *
    

    相关文章

      网友评论

      本文标题:crontab详解

      本文链接:https://www.haomeiwen.com/subject/btqloftx.html