概述:
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文件中。
希望可以帮助到大家~