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

简介: Crontab 是一种在类 Unix 系统(如 Linux、FreeBSD、Solaris 等)中用于设置和管理定时任务的实用工具。通过编写 crontab 文件,用户可以安排命令或脚本在特定的时间点或周期性地自动执行。本教学将引导您了解 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
  • image.gif
  • 编辑当前用户的 crontab
    Code
crontab -e
  • image.gif image.gif 编辑
  • 编辑器打开后,您可以添加、修改或删除定时任务。保存并退出编辑器后,更改立即生效。

3. crontab 语法

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

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

时间字段

Bash

1minute hour day_of_month month day_of_week command

image.gif

每个字段含义如下:

  • 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
  • image.gif
  • 每天凌晨 3 点执行
    Code
10 3 * * * command
  • image.gif
  • 每周一上午 9 点执行
    Code
10 9 * * 1 command
  • image.gif
  • 每月第一天的下午 5 点执行
    Code
10 17 1 * * command
  • image.gif

命令字段

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

示例

  • 执行脚本
    Code
10 0 * * * /path/to/script.sh
  • image.gif
  • 设置环境变量并执行命令
    Code
10 0 * * * export VAR=value && command
  • image.gif
  • 重定向输出(我最近做了一个脚本想让他一分钟一执行,并把内容输出到文件中)
    Code
* * * * * python3 /Python_GetInfo/app_2.0.py > /var/log/app_2.0.log 2>&1
  • image.gif

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

希望可以帮助到大家~

相关文章
|
3月前
|
安全 Linux 调度
在Linux中,如何实现,每星期天早8点服务器定时重启?
在Linux中,如何实现,每星期天早8点服务器定时重启?
|
9天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
27 3
|
9天前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
22 3
|
24天前
|
Linux
Linux Crontab 查看定时任务启动没
【10月更文挑战第20天】在Linux系统中,crontab用于设置周期性执行的任务。查看当前用户的Crontab任务列表,使用`crontab -l`;查看所有用户任务,使用`sudo crontab -l`或指定用户`sudo crontab -u username -l`。
48 5
|
2月前
|
Unix Linux Python
Cron定时设置在linux和mac中的使用
文章详细说明了如何在Linux和Mac操作系统中使用Cron进行定时任务的设置,并提供了多个Cron表达式的实例。
40 0
|
3月前
|
监控 Linux 调度
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
|
4月前
|
数据挖掘 Linux Shell
linux 使用crontab 创建定时任务
linux 使用crontab 创建定时任务
110 0
linux 使用crontab 创建定时任务
|
3月前
|
监控 Ubuntu Linux
|
4月前
|
安全 固态存储 Linux
服务器linux操作系统重装的完整流程-傻瓜式教学
服务器linux操作系统重装的完整流程-傻瓜式教学