6

Linux 中的crontab命令的简单介绍及其用法

 3 years ago
source link: https://exploro.one/posts/crontab-tutorial
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Linux 中的crontab命令的简单介绍及其用法

Crontab 案例

写于 2020 年 3 月 16 日:

Crontab

其实就是 Linux 操作系统中用来设置定时任务的工具,也就是可以使得特定的任务在特定的时间得以(周期性的)执行.比如说,定时备份、定时清理临时文件目录、收集日志、发送或者检查邮件等等.

帮助文档的获取和阅读

要开始学习 crontab 的语法可以运行:

man 5 crontab

要学习 crontab 命令的用法可以运行:

man crontab
# 或者 man 1 crontab
crontab -e

可以打开 crontab 配置文件并编辑.

编辑自己的 crontab

crontab -e

与手动找到配置文件并且手动编辑的差别是,它会自动为你找到配置文件并且打开,并且如果格式不对,还会给出提示.

crontab 的格式

crontab 记录是一行一行的,形象地说:

*  *  *  *  *  command
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  要执行的命令
|  |  |  |  每周的哪几天
|  |  |  每年的哪几月
|  |  每月的哪几天
|  每天的哪几小时
每小时的哪几分钟

这 5 个星号,无论其是否填入数字,组合起来可以看成是一个 5 元组,表示时间点的集合.

cron 程序主要做的事情,就是先计算出在当前时刻,是第几分钟,是第几小时,是第几天,是第几月,是每周的周几,然后再将这几个数字和 crontab 记录做比对,确定是否执行命令.具体的实现也可以是先算好哪些时间执行,然后再配置触发器,使得到了那个时间 crontab 被触发.

具体的案例

5 0 * * *

每天的 0 点 5 分.

15 14 1 * *

每月的 1 号的 14 点 15 分.

0 22 * * 1-5

周一到周五,每天晚上 10 点整.

5 4 * * sun

每周周天的凌晨 4 点 5 分.

*/2 * * * *

每小时的 0, 2, 4, ... 分.

0 0 3-31/7 * *

每月的 3, 10, 17, 24 号.斜杠后面表示间隔,横杠表示范围.

0-4,8-12 * * * *

每小时的 0 分到 4 分,以及每小时的 8 分到 12 分.例如 9:00, 9:01, ..., 9:04, 以及 7:08, 7:09, ..., 7:12.

0-4/2,8-12/4 * * * *

斜杠和横杠也可以组合.每小时的 0 分,2 分,以及 4 分,每小时的 8 分,12分.

[1] (37) Linux/Mac Tutorial: Cron Jobs - How to Schedule Commands with crontab - YouTube

[2] crontab.guru - the cron schedule expression editor


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK