Linux的定时任务crontab

发布时间 2023-06-06 11:56:45作者: Magiclala
  1. 打开终端并以超级用户(root)身份登录。
  2. 输入以下命令以编辑 crontab 文件:crontab -e

    crontab -e

    在大多数 Linux 发行版中,只有 root 用户或具有 sudo 权限的用户才能编辑系统范围的 crontab 文件。这是因为 crontab 文件通常位于系统目录中,并且对其进行编辑可能会影响系统的运行和安全。

    如果你希望编辑系统范围的 crontab 文件(即对所有用户有效),需要使用 root 用户或具有 sudo 权限的用户来执行 crontab -e

    但是,对于普通用户来说,通常也有一个用户级别的 crontab 文件,只对该用户有效。普通用户可以使用 crontab -e 命令来编辑自己的 crontab 文件,而不需要 root 权限。

    总结来说,如果你要编辑系统范围的 crontab 文件,需要使用 root 或具有 sudo 权限的用户执行 crontab -e。如果你要编辑用户级别的 crontab 文件,可以作为普通用户执行 crontab -e

     

  3. 如果是第一次编辑 crontab 文件,系统会要求选择默认的编辑器。选择你熟悉的编辑器,比如 vim 或 nano,并按照提示进行选择。

  4. 在编辑器中,每一行代表一个定时任务。每行的格式如下:

    # 每小时的0分、15分、30分、45分执行一次
    0,15,30,45 * * * * /opt/dns_health_check.sh >> /opt/dns_health_check.log 2>&1
    # 也可以等效表示为如下
    */15 * * * * /opt/dns_health_check.sh >> /opt/dns_health_check.log 2>&1
    ~
    ~
    ~
    "/tmp/crontab.iHFLL5" 3L, 103C

    在 crontab 中,用于指定定时任务执行时间的字段是由五个星号组成的,格式为 * * * * *。每个星号代表一个时间单位,依次表示分钟、小时、日期、月份和星期几。

    这里是一些常见的表述方式:

    1. 指定具体的数值:

      • *:匹配任意值。例如,* * * * * 匹配每分钟执行一次。
      • 5:匹配指定的数值。例如,5 * * * * 匹配每小时的第5分钟执行一次。
    2. 指定多个数值:

      • 1,3,5:匹配指定的多个数值。例如,1,3,5 * * * * 匹配每小时的第1、第3和第5分钟执行一次。
      • 1-5:匹配一个范围内的数值。例如,1-5 * * * * 匹配每小时的第1至第5分钟执行一次。
    3. 指定时间间隔:

      • */5:匹配每个指定间隔的数值。例如,*/5 * * * * 匹配每隔5分钟执行一次。
      • 0-59/5:匹配在指定范围内的每个指定间隔的数值。例如,0-59/5 * * * * 匹配每隔5分钟执行一次。
    4. 指定列表和通配符的组合:

      • 1,3,*/10:匹配指定的数值和每个指定间隔的数值。例如,1,3,*/10 * * * * 匹配第1、第3分钟,以及每隔10分钟执行一次。

    需要注意的是,不同的时间单位具有不同的取值范围,如分钟范围为 0-59,小时范围为 0-23,日期范围为 1-31,月份范围为 1-12,星期范围为 0-7(其中0和7都代表星期日)。具体的使用方式可以根据实际需求进行组合和调整。

    这些表述方式可以灵活地用于定制定时任务的执行时间。根据具体的需求,结合适当的表述方式来设置合适的时间规则。

 

  1.