linux crontab
Crontab是窗口的Task Scheduler的Linux等效项。
它可以设置任务以定期自动运行。
我们中的一些人可能已经在思考此功能的各种用例。
它对于可以使用它来自动化日常维护工作和其他任务的系统最有用。
crontab语法如何编写crontab条目
编写CRONTAB条目时,我们必须使用六个字段。
前五个字段1-5用于指定要运行任务的日期和时间,而第六个字段是定义有关任务。
这是CRONTAB条目如何看起来的基本外观:
[
minute ] [
hour ] [
DayOfMonth ] [
MonthOfYear ] [
DayOfWeek ] [
要执行的脚本 ]
每个字段的可接受值如下:
分钟:值可以在0-59之间。
小时:值可以在0-23之间。
Dayofmonth:值可以在1-31之间。几个月不到31天(2月28日),额外的日子将被忽略。
仓下限:值可以在1-12之间。 1月1日1月12日代表12月。价值也可以是1月份的前三个字母,你可以写1月,并在六月,你可以写君。
Dayofweek:值可以在0-7之间。这里都是0和7的星期天。此外,该价值可以是星期一的前三个字母,我们可以写一下,周一,周五,我们可以写周五。
既然我们对如何定义时间值的基本了解,让我们快速地查看多个值和范围。
为此,我们可以使用以下特殊字符:
星号(*):这意味着该值可以匹配任何内容。
逗号(,):使用它来定义多个值,如2,4,6或者tue,星期六。
连字符( - ):这可用于定义2-6或者tue-sat等范围。这里所有的数字在2到6之间,周二到星期六的所有日子都将被采取。
我们还可以使用逗号(,)和连字符( - )在一起定义多个范围。
例如,如果我们想从1月到4月和10月到12月的所有月份定义,我们可以编写1月至12月1日 - DEC。
如何创建或者添加新的crontab条目?
所以,现在我们有一个基本思想如何编写Crontab条目让我们看看如何为其添加任务。
嗯,首先,我们需要在终端中输入以下命令: $crontab -e
这将在编辑器中打开CRONTAB文件,我们可以其中添加或者编辑作业。
默认情况下,它将为当前用户创建Crontab条目。
但是,如果要为其他用户创建CRONTAB条目,则需要使用此命令: $crontab -u username -e
用户名只是一个占位符,我们需要输入要为其创建新CRONTAB任务的实际用户名。
如何查看所有crontab条目?
随着时间的推移,我们可以在系统上创建一堆Crontab条目。
因此,有必要查看这些条目,以查看我们仍然需要哪些,我们可以删除哪些。
要列出当前用户的所有CRONTAB条目,我们可以使用以下命令: $crontab -l
但是,要查看不同用户的CRONTAB条目,我们需要使用此命令: $crontab -u username -l
因此,几乎涵盖了CRONTAB所需的所有基本语法和命令。
让我们谈谈如何在Linux中使用Crontab的一些实际示例。
15使用CRONTAB在Linux中的实际实例
其中我们将介绍在现实世界中的CRONTAB条目的一些实际例子。
我们将向我们展示我们需要编写的crontab命令,因此我们正在制定更深入的了解。
1.在特定时间安排每天运行的Cron
以下命令将每天上午1点运行任务/scripts/script.sh。 0 1 * * * /scripts/script.sh
第三个字段中的星号表示它将每月的每一天运行,第四个字段表示它将每月运行常年,第五个字段表示它将每周每天运行的第五个字段。
2.安排每天运行的Cron
以下命令将在午夜日常运行任务/scripts/script.sh。 0 0 * * * /scripts/script.sh
或者我们可以使用命令: @daily /scripts/script.sh
这里@Daily时间戳替换为"0 0 * * *"。
3.安排每天运行两次的人
以下命令将运行任务/scripts/script.sh,每天上午1点半和下午1点。 0 1,13 * * * /scripts/script.sh
请注意,第二个字段包含由逗号分隔的两个条目以定义两个单独的时间点。
4.安排每分钟运行的Cron
以下命令将重复运行每分钟的任务/scripts/script.sh。 * * * * * /scripts/script.sh
正如我们所看到的,用于指定日期和时间的所有五个字段都标有星号(*)。
5.每x分钟运行
以下命令将每20分钟运行任务/scripts/script.sh。 * /20 * * * /scripts/script.sh
其中我们在小时场中使用了/20
,这意味着任务每20分钟运行一次。
如果我们使用的(在这里)使用/10
,这将意味着任务每10分钟运行一次。
6.每x小时运行
以下命令将在0分钟内每6小时运行任务/scripts/script.sh。 0 * /6 * * /scripts/script.sh
我们在日田中使用了/6
,这是告诉它每6小时运行命令。
由于分钟场为0,因此当微小手为12(或者0)时,它将完全运行。
7.安排每10秒钟每10秒运行Cron
要使用时间参数执行每10秒执行命令。
但是,这可以通过在包括睡眠命令的同时配置相同的Cron来管理。
* * * * * /scripts/script.sh * * * * * sleep 30; /scripts/script.sh
8.每小时运行
以下命令将运行任务/scripts/script.sh,每小时一次。 0 * * * * /scripts/script.sh
就像之前一样,我们可以使用备用命令: @hourly /scripts/script.sh
9.每月自动执行任务
以下命令将每月运行任务/scripts/script.sh。 0 0 1 * * /scripts/script.sh
或者我们可以使用命令: @monthly /scripts/script.sh
10.在选定的月份执行
以下命令将仅在5月份运行任务/scripts/script.sh。
但是,它将执行当月的每一分钟或者每一天。 * * * Jan * /scripts/script.sh
如果我们希望任务每5月运行,但只有在12时的第1次,那么请使用此命令: 0 0 1 Jan * /scripts/script.sh
11.安排每个月的星期一运行步
这是一个棘手的。
通过单独使用时间参数,我们无法创建仅在每个月的第一个星期一执行的CRON。
但是,我们可以在命令字段中添加一个条件,这些字段将执行此操作。 0 0 * * sun [$(date +%d) -le 01] && /scripts/script.sh
12.每周运行它
以下命令将在午夜周一的每周运行任务/scripts/script.sh。 0 0 * * mon /scripts/script.sh
或者我们可以使用之前使用的替代命令: @weekly /scripts/script.sh
13.每年
以下命令将在1月1日在午夜运行任务/scripts/script.sh。 0 0 1 1 * /scripts/script.sh
也有一个替代命令: @yearly /scripts/script.sh
14.每天在特定时间运行一次多个任务
以下命令将每天在午夜运行这两个任务/scripts/script1.sh和/scripts/script2.sh。 0 0 * * * /scripts/script1.sh; /scripts/script2.sh
使用分号(;),我们可以定义两个任务而不是一个任务。
我们可以使用该过程定义三个,四个...最多n个功能。
15.在系统重新启动后计划Cron运行
有时,每次重新启动后都可能需要运行任务或者一组任务。
这是"@Reboot"变得有用的地方。
以下命令将在系统启动时运行任务/scripts/script.sh。 @reboot /scripts/script.sh