什么是linux Cron作业,如何设置Ubuntu Crontab定时任务

这篇文章中,我会深入了解什么是cron作业和crontab,举例说明什么是cron,为什么要使用它。

Beginners-Guide-to-Cron-Jobs-Thumbnail.png

在Raspberry Pi教程中,使用了不少cron作业。Cron作业提供了一种方便的方式来安排定时任务。

此外,利用cron可以消除程序持续运行所消耗的宝贵的处理器计算能力和RAM的内存占用。

在很多情况下,都需要利用cron作业。它是Linux系统中最有用的工具之一。

什么是Cron Job?

Cron是一个基于时间的作业调度器,它是类似Unix的操作系统(如Linux及其许多衍生产品)的一个组成部分。

使用cron是定期运行命令或shell脚本等事情的一种方式。

通过 “cron “工具安排的任务通常被称为 “Cron作业”。在处理基于Unix的系统(如Raspbian)时,你很快就会依赖cron作业。

Cron作业格式

下面我们包含了两个表格。第一张表显示了cron作业的一般语法,第二张表显示了cron作业中使用的各种符号以及它们的用途。第二张表显示了cron作业中使用的各种符号,以及它们可以用来做什么。

cron job的前五个组件定义了希望任务启动的时间。使用它,可以设置一个特定的时间,或者指定一个时间间隔,比如每隔一天,或者每分钟。

在每个cron作业行的末尾,需要指定当前面的组件条件满足时要触发的命令。

在接下来的几个章节中深入探讨您可以使用cron作业的各种方法。但现在,请先熟悉一下cron作业的一般设置。

Cron作业语法

六个基本部分构成了一个cron工作。

前五个部分构成了cron作业的定时语法。这五个部分包括,分钟,小时,月日,月日,周日。

语法的最后也就是第六部分是当定时语法中的条件满足时,你要执行的命令。

* * * * * [COMMAND]
Minute
(0-59)
Hour
(0-23)
Day Of the Month
(1-31)
Month
(1-12)
Day of the week
(0-6)
Command to run

Cron作业符号表

有一些不同的符号,可以在cron作业中使用。

在你的cron工作中,你可能会使用最多的符号是星号(*)。星号意味着每当该值发生变化时,cron就会启动。例如,当在分钟列中使用时,它将每分钟启动一次cron。

另一个你会经常使用的符号是步长值符号,这就是正向斜杠(/)。当你想让一个事件每隔一定时间发生一次时,这个符号就很有用。

例如,每5分钟在分钟一栏中为 “*/5″,每3天在月日一栏中为 “*/3″。

下面你可以看看我们的表格,看看你在cron作业中可以使用的各种符号,以及如何使用它们。

符号 用途 例子 解释
* 任何值 * * * * * [CMD] 每分钟执行一次
, 值分割符 0 0 * * 1, 3, 5 [CMD] 每周一、三、五 0点执行
定义一个范围 0 0 * 1-6 * [CMD] 前6个月,每天0点执行
/ 步长 */5 */2 * * * [CMD] 每天,每2个小时,每6分钟执行一次
@yearly
@annually
非标准 @yearly [CMD]
@annually [CMD]
在大年初一的0点运行
@monthly 非标准 @monthly [CMD] 每月1日0点执行
@weekly 非标准 @weekly [CMD] 每周第一天的0点执行
@daily 非标准 @daily [CMD] 每天0点执行
@hourly 非标准 @hourly [CMD] 每小时执行一次
@reboot 非标准 @reboot [CMD] 当cron服务重新启动时,在启动时运行执行

在本节中,将为您提供一些您可以使用的cron作业的例子。还将解释它们是如何工作的,以及所使用的符号是做什么的。

* * * * * [COMMAND]

这一行最基本的cron作业。它将每分钟一直运行该命令。

基本上,如果想让一些命令一直运行,就用这个cron作业。

0 * * * * [COMMAND]

上面的一行将在每小时的第0分钟运行。如果想让某件事情每小时运行一次,这个cron就很有用。

15 5 * * * [COMMAND]

这个cron作业将在每天的 “5:15 am “启动。通过在分钟栏中指定 “15”,在小时栏中指定 “5 “来实现。

0 0 15 * * * [COMMAND]

这个命令将在每月15日0点运行。

*/15 * * * * * [COMMAND]

现在这个作业将每15分钟运行一次。通过将星号(*)与前斜线”/”修饰符配对来实现。

0 0 * * 1-5 [COMMAND]

在这个cron作业中,使用了范围符号(-),因此只在工作日运行cron。这项工作将在第1天(星期一)-第5天(星期五)的午夜时分启动。

* * 3,5,10 * * [COMMAND]

最后一个cron作业的例子将在每个月的3号、5号和10号每分钟触发一次。你可以通过使用逗号(,)这样列出每列的值。

编辑Crontab文件

crontab文件是保存当前用户所有cron作业的地方。cron守护程序会自动读取这些文件并处理文件中的作业。

必须注意的一点是,cron作业是由创建它们的用户来运行的。例如,一个由root用户创建的cron作业将由root用户运行。或者,一个名为pimylifeup的用户创建的cron作业将由该用户运行。

要开始修改当前用户的crontab文件,可以运行以下命令。在开始时添加sudo将编辑根用户的crontab。

crontab -e

另外,如果你想编辑某个特定用户的crontab,你可以用”-u “参数指定用户,如下图所示。

crontab -u [USERNAME] -e

当你第一次运行 “crontab -e “命令时,你会被要求选择一个编辑器来使用。

我发现”/bin/nano “是最容易使用的,但你应该选择你熟悉的和乐意使用的。

no crontab for pimylifeup - using an empty one

Select an editor. To change later, run 'select-editor'.
 1. /bin/nano <---- easiest
 2. /usr/bin/vim.basic
 3. /usr/bin/vim.tiny
 4. /bin/ed

Choose 1-4 [1]:

在crontab文件中,你可以在底部添加新的cron作业。每个作业都应该在自己的行中。

例如,如果你要在文件中添加两个新的cron作业,它应该看起来像我们下面的东西。

# m h dom mon dow command
* * * * * [COMMAND]
0 0 15 * * * [COMMAND]

现在,我希望你对cron作业和crontab都有了很好的了解。如果你觉得我遗漏了什么,或者有什么意见,那么请不要犹豫,在下面留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 什么是linux Cron作业,如何设置Ubuntu Crontab定时任务

赞 (0)

评论

6+8=