Linux Crontab定时表教学大全(一看就会!)

概述:

        crontab是Linux内非常方便的一个定时工具,它可以实现定时的去执行 一个脚本,最近也是刚接触到这个工具,跟大家分享一下!

详细概念:

Crontab 是一种在类 Unix 系统(如 Linux、FreeBSD、Solaris 等)中用于设置和管理定时任务的实用工具。通过编写 crontab 文件,用户可以安排命令或脚本在特定的时间点或周期性地自动执行。本教学将引导您了解 crontab 的基本概念、使用方法、语法和常见问题解决。

1. 基本概念

  • crontab 文件:存储定时任务的配置文件,每个用户拥有独立的 crontab 文件。
  • cron daemon(crond):守护进程,持续监控 crontab 文件并根据其中的定时规则执行任务。
  • cron job(定时任务):由 crontab 文件定义的单个定时任务,包含执行时间和命令(或脚本)。

 2. 使用方法

访问与编辑 crontab 文件

  • 查看当前用户的 crontab

    Code
    crontab -l
  • 编辑当前用户的 crontab

    Code
    crontab -e

    编辑器打开后,您可以添加、修改或删除定时任务。保存并退出编辑器后,更改立即生效。

3. crontab 语法

一个典型的 crontab 任务行由两部分组成:

  • 时间字段:定义任务执行的时间规律。
  • 命令字段:要执行的命令或脚本及其参数。

时间字段

Bash

1minute hour day_of_month month day_of_week command

每个字段含义如下:

  • minute:分钟(0-59)。
  • hour:小时(0-23)。
  • day_of_month:月份中的日期(1-31)。
  • month:月份(1-12 或 Jan-Dec)。
  • day_of_week:星期几(0-7 或 Sun-Sat,0 和 7 代表周日)。

特殊符号

  • *:匹配任意值。例如,* 在 minute 字段表示每分钟。
  • ,:分隔多个值。例如,1,3,5 表示第 1、3、5 分钟。
  • -:定义范围。例如,1-5 表示第 1 到 5 分钟。
  • /:定义步长。例如,*/5 表示每隔 5 分钟。

示例

  • 每小时执行一次

    Code
    10 * * * * command
  • 每天凌晨 3 点执行

    Code
    10 3 * * * command
  • 每周一上午 9 点执行

    Code
    10 9 * * 1 command
  • 每月第一天的下午 5 点执行

    Code
    10 17 1 * * command

命令字段

  • 绝对路径:提供命令或脚本的完整路径。
  • 环境变量:如果命令依赖特定环境变量,可以在命令前添加 export VAR=value 设置。
  • 输出重定向:可以使用 > 或 >> 将命令输出重定向到文件,如 command > /path/to/logfile

示例

  • 执行脚本

    Code
    10 0 * * * /path/to/script.sh
  • 设置环境变量并执行命令

    Code
    10 0 * * * export VAR=value && command
  • 重定向输出(我最近做了一个脚本想让他一分钟一执行,并把内容输出到文件中)

    Code
    * * * * * python3 /Python_GetInfo/app_2.0.py > /var/log/app_2.0.log 2>&1
    

 一分钟执行一次 python3 /Python_GetInfo/app_2.0.py脚本并把内容输出到var/log/app_2.0.log文件中。

希望可以帮助到大家~

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 16:30:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 16:30:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 16:30:01       82 阅读
  4. Python语言-面向对象

    2024-03-29 16:30:01       91 阅读

热门阅读

  1. 如何避免过度设计

    2024-03-29 16:30:01       51 阅读
  2. SparkSQL异常数据清洗API

    2024-03-29 16:30:01       46 阅读
  3. CentOS7.x 上安装并配置 MySQL 8.x

    2024-03-29 16:30:01       43 阅读
  4. 小程序配置服务器域名

    2024-03-29 16:30:01       52 阅读
  5. 构建docker环境下的thunder迅雷插件

    2024-03-29 16:30:01       49 阅读
  6. C#——系统学习(类与对象)

    2024-03-29 16:30:01       42 阅读
  7. 笔记82:关于 C++ 中的 swap 函数

    2024-03-29 16:30:01       40 阅读
  8. SQL中如何添加数据【保姆】

    2024-03-29 16:30:01       36 阅读
  9. sql server用nest typeorm实现索引的方式

    2024-03-29 16:30:01       38 阅读