linux 定时任务 crontab 使用笔记

发布时间:2024年01月20日

最近在服务器上跑撸茅台的脚本,需要使用定时任务每天早上9点准时预约一次抢茅台的脚本,因此需要用到 crontab 命令。crontab主要是用于设置周期性执行命令,比如每分钟、每小时或者每周执行一个固定的命令,该命令从标准输入设备读取命令,并将其存放在crontab文件中,以供后期的读取和执行。

1. crontab 命令模式

crontab 命令可以参照下图:

列举几个常用的:

-e 编辑 crontab 编辑 crontab 内容

-l 查看用户的 crontab 中的内容

-r 删除用户的 crontab 中的内容

2. 设置 crontab

首先我们来看一下已经执行的 crontab 命令,我们使用 crontab -l 来查看一下咱们的任务:

0,15,30,45,55 9 * * *  python3 /root/root/maotai/request.py >> /root/root/maotai/request_maotai.log

可能看上去比较懵逼,我们来仔细讲一下 crontab的命令格式:

* * * * * command

对于具体的解释,我们可以查看下图:

因为 crontab是周期性任务,因此我们可以使用来定义定时任务的开启时间。首先我们来确定一下每一个*的取值:

分 * : 1 ~ 59 如果需要分钟执行,那么可以写成 * 或者 */1

时* : 1 ~ 23 0是 0 点的意思

日* : 1 ~ 31 哪一天填写那个数字即可

月*: 1 ~ 12 表示月份

周*: 0 ~ 6 表示周几(0 表示为周天)

此外,还存在一些额外的占位符,表示特定的意思:

  • 星号(*) 表示所有可能的值,比如你的日里面用星号,表示时每一天都需要执行
  • 逗号(,) 表示可选的值,比如你的日里面用 1,2,3,4 表示,表明在第 1,2, 3, 4天执行
  • 中杠(-) 表示整数之间的范围,比如你的日里面用 1-10 表示,表明在第 1 天到第 10 天,每一天都讲被执行
  • 斜线(/) 表示时间的执行频率,比如你的日里面每两天执行一次,可以写成 */2 或者 0-23/2

对于最后一个command命令,就是我们需要执行的命令,比如我上面写的:

python3 /root/root/maotai/request.py >> /root/root/maotai/request_maotai.log

就是使用 python3 的环境执行一次 request ,然后把结果存储到 request_mtaotai.log 中。

3. Crontab 执行实例

  1. 我需要每天 10 点 15 分执行一次命令:
15 10 * * * command
  1. 我需要在每个月的第一天和最后一天的 23:59 分执行一次命令
59 23 1,31 * * command
  1. 我需要在每周一的 10-12之间每隔15 分钟执行一次任务
*/15 10-12 * * 1 command
  1. 每天早上 9 点,9 点 5 分,9 点 10 分,9 点 20 分去请求一次撸茅台服务
0,5,10,20 * * * *  comannd

4. 注意事项

我们在使用crontab时,一定要注意你自己服务器的时区,这个很重要,因为定时任务是根据你服务器的时区去执行的,不然会产生到点不能执行的问题。当然了,有任何问题的话,可以加我 v:javainstalling,一起学习啦。

文章来源:https://blog.csdn.net/u013762572/article/details/135711736
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。