• crontab使用说明【一文搞懂Linux定时任务Crontab】


    1、简介

    cron是一个在后台运行调度的守护进程,而crontab是一个设置cron的工具。cron调度的是/etc/crontab文件。

    crontab用法与实例crontab用法与实例

    2、centos安装crontab

    1
    yum install crontabs

    3、crontab的配置文件

    Linux下的任务调度分为两类:系统任务调度和用户任务调度。Linux系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用crontab 命令。在CentOS系统中,

    1
    cat /etc/crontab

    配置文件可以看到如下解释:

    前三行:用来配置crond任务运行的环境变量。

    第一行:SHELL变量指定了系统要使用哪个shell,这里是bash;

    第二行:PATH变量指定了系统执行命令的路径;

    第三行:MAILTO变量指定了crond的任务执行信息发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户;

    用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致:

    4、crontab命令详解

    格式:
    crontab [-u user] file crontab [ -u user ] [ -i ] { -e | -l | -r }
    说明:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    crontab –e     //修改 crontab 文件,如果文件不存在会自动创建。
    crontab –l      //显示 crontab 文件。
    crontab -r      //删除 crontab 文件。
    crontab -ir     //删除 crontab 文件前提醒用户。
      
      
    service crond status     //查看crontab服务状态
    service crond start     //启动服务
    service crond stop     //关闭服务
    service crond restart     //重启服务
    service crond reload     //重新载入配置
    取消某个定时任务:

    删除在配置文件中的对应命令,即 crontab -e 打开文件,然后删除对应哪行的命令即可

     

    5、定时任务的基本格式(即crontab -e使用说明)

    1
    2
    *  *  *  *  *  command
    分  时  日  月  周   命令

    第1列表示分钟 00~59 每分钟用*或者 */1表示

    第2列表示小时 00~23(0表示0点)

    第3列表示日期 01~31

    第4列表示月份 01~12

    第5列标识号星期 0~6(0表示星期天)

    第6列要运行的命令

    此外每一列除了数字,还可以有这些符号,其含义如下所示:

    1
    2
    3
    4
    *        代表任何时间,比如第一个 * 就代表一小时中的每分钟都执行
    ,        代表不连续的时间,比如 0 8,12,16 * * * 代表每天8,12,16点0分执行
    -        代表连续的时间范围,比如0 5 * * 1-6 代表在周一到周六凌晨5点0分执行
    */n      代表每个多久执行一次,比如*/10 * * * *代表每隔10分钟执行一次
    示例:

    (1)在 凌晨00:10运行

    1
    10 0 * * * sh test.sh

    (2)每个工作日23:59都进行备份作业

    1
    2
    3
    59 23 * * 1,2,3,4,5 sh test.sh 
    或者
    59 23 * * 1-5 sh test.sh

    (3)每分钟运行一次命令

    1
    */1 * * * * sh test.sh

    (4)每个月的1号 14:10 运行

    1
    10 14 1 * * sh test.sh

    (5)每10分钟定时请求一个地址

    1
    0 */10 * * * /usr/bin/curl http://www.aaa.com/index.php

    6、 crontab 日志

    1
    tail -f /var/log/cron

    7、Q&A--crontab定时任务脚本不执行?

    (1)全路径。crontab定时任务(crontab -e编辑中涉及的路径)要写全路径,全路径!

    (2)执行权限。看日志,cat /var/log/cron。如果日志中有执行记录可能是脚本没有执行权限。

    8、应用

    实现每分钟向文件写入一条数据的效果:

     

  • 相关阅读:
    DRF-接口文档-(三方drf-yasg)-(简单使用): 使用自定义的认证类,使用jwt做token时,想要使用自动生成文档
    物流APP开发方案
    【Linux】常见指令(二)
    C语言 2 —— 常量
    开放式耳机怎么选择、300之内最好的耳机推荐
    Maven仓库jar包无法找到,编译失败,报红
    接口自动化测试是个啥?如何开始?什么是框架?带你揭开神秘面纱
    vue实现关键字查询列表数据
    cloudenative1-1
    centos7.6 修改vi /etc/security/limits.conf ,不生效问题
  • 原文地址:https://www.cnblogs.com/mollyviron/p/17270506.html