type
status
date
slug
summary
category
tags
password
Created time
Aug 30, 2024 02:11 AM
Last edited time
Sep 2, 2024 01:13 PM
UUID
icon
🗒️发表的笔记
URL CK
ErrorCheck
ErrorCheck
Description
服务器运维的小伙伴,一定听说过青龙-定时其任务管理平台,它是一款开源的支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台。但是在Linux系统中,系统自身本身就自带一种管理定时任务调度程序“cron”。我们也可以经常在Github仓库的Action CI自动化部署中经常看到他的身影。
上面这段代码的意思在GIthub Action中的含义是将我的工作流设置为在一周中的每一天(从周一到周五)的2:00 UTC运行。
用户可以在特定的时间、日期或间隔自动执行脚本、命令或程序。这种功能对于需要定期执行的任务非常有用,比如定时备份、定时清理日志文件、定时发送报告等。
crontab
基本概念
- Cron:是一个守护进程(daemon),它在后台运行,并根据时间表来自动执行任务。这个时间表就是由
crontab
文件定义的。
- Crontab:指的是 cron 表(cron table),是一个包含任务调度时间表的文本文件。每个用户(包括系统用户)都可以有一个独立的 crontab 文件。
crontab
文件格式
crontab
文件中的每一行代表一个任务调度。每一行由五个时间字段和一个要执行的命令或脚本组成。时间字段定义了任务的执行时间,格式如下:字段解释
- 分钟(Minute):任务执行的分钟(0-59)。
- 小时(Hour):任务执行的小时(0-23)。
- 日期(Day of month):任务执行的日期(1-31)。
- 月份(Month):任务执行的月份(1-12)。
- 星期几(Day of week):任务执行的星期几(0-7,0 和 7 都代表星期天)。
特殊符号
:表示任意值。比如在分钟字段中使用
表示每一分钟。
,
:表示多个值的列表。例如,1,3,5
表示在第 1、3、5 分钟执行。
:表示一个范围。例如,
1-5
表示从第 1 分钟到第 5 分钟执行。
/
:表示步长。例如,/5
表示每 5 分钟执行一次。
crontab
常用命令
crontab -e
:编辑当前用户的 crontab 文件。
crontab -l
:列出当前用户的 crontab 文件内容。
crontab -r
:删除当前用户的 crontab 文件(即删除所有定时任务)。
crontab -u username -e
:编辑其他用户的 crontab 文件(需要超级用户权限)。
crontab
示例
假设你想每天凌晨 2 点运行一个备份脚本
backup.sh
,你的 crontab 条目可能如下:这个条目表示在每一天的凌晨 2:00(小时字段为 2,分钟字段为 0)运行
/path/to/backup.sh
脚本。总结
crontab
是管理和安排定时任务的强大工具,特别适合在服务器环境中使用,因为它可以自动执行需要定期完成的任务,无需人工干预。