Linux - cron - cron 表达式

时间:2019-12-12
本文章向大家介绍Linux - cron - cron 表达式,主要包括Linux - cron - cron 表达式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  1. 概述
    1. 之前 cron 的补充
    2. 这次介绍下 表达式
  2. 背景
    1. 之前有说过 cron
    2. 这次说下 表达式

1. 准备

  1. 环境
    1. os
      1. centos7

2. 模板文件

  1. 文件
    1. 位置
      1. /etc/crontab
    2. 作用
      1. 系统任务
        1. 不建议直接使用
      2. cron 表达式模板
        1. 协作参考

3. cron 脚本

  1. 内容
    1. 变量
      1. shell
        1. 指定 shell
      2. path
        1. 添加路径
        2. 如果没有的话, 执行要 带程序的全路径
      3. mailto
        1. 如果出现问题, 会把信息发送给特定用户
    2. 任务定义
      1. 组成
        1. cron 表达式
        2. 执行用户
          1. 通常 都是创建 cron 任务的用户自己
          2. root 的权限可能大一些
        3. 执行命令
          1. 如果没有 path, 需要带 全路径

4. cron 表达式

  1. 概述
    1. cron 表达式
      1. 表示按一定的频率, 执行操作
  2. 字段
    1. 概述
      1. linux 上的 cron 表达式一共 5 个字段
        1. 其他地方的, 可能会有 6 个
        2. 基本上 大同小异, 灵活处理即可
    2. 字段
      1. 解释

        # /etc/crontab 讲得还挺好, 我直接复制了
        # 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
  3. 例子

    # 1. 每分钟执行一次, 通常在每分钟的 第一秒 执行
    * * * * *
    # 2. 每小时的 15 分, 执行一次
    15 * * * *
    # 3. 每天 3:15, 执行一次
    15 3 * * *
    # 4. 每个月 1 日 的 3:15, 执行一次
    15 3 1 * *
    # 5. 每年的 2 月 1 日, 在 3:15 时执行一次
    15 3 1 2 *
    # 6. 2 月的每个星期一, 在 3:15 时执行一次
    # 日期 和 星期, 不能同时支持
    15 3 * 2 1
  4. 进阶
    1. 概述
      1. 首先, 也不是什么太难的技巧
    2. 场景
      1. 执行多次
        1. 连续执行
        2. 间隔执行
    3. 思路1: 多写几条 cron 任务
      1. 感觉
        1. 可行
        2. 但会不会 太笨了?
    4. 思路2: 调整 cron 表达式

      # 只用 分钟 字段做例子, 其他字段也可以
      # 1. 连续时间: 1, 10 分, 每分钟一次
      1-10 * * * *
      # 2. 间隔时间: 1, 10 分, 各一次
      1,10 * * * *
      # 3. 间隔时间: 每 10 分一次
      */10 * * * *
    5. 感觉
      1. 这些东西, 基本就可以满足需要了吧

ps

  1. ref
    1. 这次是自己记住了
      1. 肯定也是以前看的, 但现在想不起来哪看的了
  2. cron
    1. 这一块, 应该暂时完结了吧
    2. 如果再要讲, 估计就涉及到底层原理了
      1. 想想就觉得不会有那一天...

原文地址:https://www.cnblogs.com/xy14/p/12027665.html