⏱️管理定时任务调度程序cron和crontab命令
00 分钟
发布于: 2024-8-30
最后更新: 2024-9-2
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运行。
 
用户可以在特定的时间、日期或间隔自动执行脚本、命令或程序。这种功能对于需要定期执行的任务非常有用,比如定时备份、定时清理日志文件、定时发送报告等。
notion image

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 是管理和安排定时任务的强大工具,特别适合在服务器环境中使用,因为它可以自动执行需要定期完成的任务,无需人工干预。
上一篇
Github Action Workflow入门
下一篇
代码自动化推送部署实战全能打

评论
Loading...