2016 - 2024

感恩一路有你

Linux下使用cron系统服务定时执行任务

浏览量:1254 时间:2024-08-05 23:39:01 作者:采采

Linux系统中有很多的系统级任务在后台自动执行,而负责调度这些任务的便是cron服务的守护进程crond,当我们需要定时执行自己的任务时便可以将所要执行的任务加入到crond的任务列表中来让crond自行调度执行,接下来便为大家介绍如何来让crond自动执行我们的任务。

确定任务和编写脚本

首先,我们要确定所要执行的任务。如果任务比较简单的话尽量使用单行命令直接搞定。如果任务比较复杂的话便要编写Shell脚本,通过crond调用该脚本来执行。这一步相当重要,要反复确定最终的命令或脚本能够准确地完成我们的任务。

编辑任务调度表

使用`crontab -e`命令编辑任务调度表,打开后的调度表如图所示。表中每一行代表一个要执行的任务,每一行又分为六个字段,从左到右依次为:分钟、小时、日期、月份、星期、所要执行的命令或脚本。

调度表字段取值范围

各字段的取值既可以为特定数字,也可以为指定的特殊字符。各字段的取值范围如下:

- 分钟:0-59

- 小时:0-23

- 日期:1-31

- 月份:1-12

- 星期:0-7,0和7都代表星期天

特殊字符代表的意义为:

- *(星号):代表任意时刻。例如 `8 0 * * * cmd` 表示每天8点整执行cmd命令。

- ,(逗号):代表并列的时段。例如 `0 3,6,9 * * * cmd` 表示每天3点整、6点整和9点整执行cmd命令。

- -(减号):代表时段范围。例如 `30 20-23 * * * cmd` 表示每天20点到23点之间的每个小时的第30分钟执行cmd命令。

- /(斜线):代表每n个时间间隔执行一次。例如 `*/10 * * * * cmd` 表示每十分钟执行一次cmd命令。

查询和删除任务

确定任务是否已经加入调度队列,可以使用`crontab -l`来进行查询。若要删除某一项任务,可以使用`crontab -e`编辑删去任务所在行;若要删除全部任务,可以使用`crontab -r`命令。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。