linux任务调度器:定时执行任务的工具 cron详解

linux任务调度器:定时执行任务的工具 cron详解Cron 是 Linux 和 Unix like 操作系统中守护进程 daemon 用于调度周期性任务

大家好,欢迎来到IT知识分享网。

目录

一、概述

二、Cron 的定义和原理(crontab)

1、原理

2、定义

(1)cron 守护进程

(2)crontab文件:

(3)cron 作业

(4)cron和crontab的区别和联系

三、 Cron 的配置文件

1、系统级配置文件

2、用户级配置文件

四、Cron 表达式

1、Cron 表达式的格式

2、特殊符号

3、示例

五、使用 Cron

1、创建和编辑 crontab 文件

(1)用户级 crontab

(2)系统级 crontab

2、查看 crontab 文件

(1)用户级 crontab

(2)系统级 crontab

3、删除 crontab 文件

(1)用户级 crontab

六、示例命令(crontab)

1. 创建 crontab 文件

2. 查看 crontab 文件  

3. 删除 crontab 文件  

七、其他

1、权限管理

2、安全注意事项

3、路径

4、邮件

5、系统级别的 crontab 文件

八、总结


一、概述

        Cron 是 Linux 和 Unix-like 操作系统中的一个守护进程(daemon),用于调度周期性任务。Cron 可以安排在特定时间运行的命令,如每天凌晨备份数据库、每周清理日志文件等。Cron 的灵活性和易用性使其成为系统管理员日常工作中不可或缺的工具。

        cron 是一种基于时间的作业调度器,它允许用户安排命令或脚本(称为 cron jobs)在后台自动运行,而无需用户手动干预。

        这些作业可以基于时间(分钟、小时、日期、月份、星期几)来安排。cron 是 Unix 和类 Unix 系统(包括 Linux)中广泛使用的标准工具之一。

二、Cron 的定义和原理(crontab)

1、原理

        Cron 读取一系列配置文件(称为 crontab 文件),这些文件中定义了要运行的任务及其运行时间。Cron 守护进程会定期检查这些配置文件,并根据配置运行相应的命令。

        cron 基于 cron 守护进程(cron daemon)工作,这个守护进程在系统启动时自动启动,并持续运行,检查预定的作业是否需要运行。

2、定义

(1)cron 守护进程

        cron 守护进程(crond)在系统启动时启动,并在后台持续运行。它定期检查一个或多个 cron 作业表(crontab 文件),以查找需要运行的作业。

   – cron 是一个在 Unix 和类 Unix 系统中运行的守护进程,负责处理定时任务。

   – 它是一个核心系统服务,负责调度由用户或系统管理员设置的定时任务。

   – cron 守护进程在系统启动时自动启动,并持续运行,以检查预定的作业是否需要执行。

(2)crontab文件:

        用户的 cron 作业存储在 crontab(cron table 的缩写)文件中。每个用户都可以有自己的 crontab 文件,但系统管理员也可以为所有用户设置系统级别的 crontab 文件。

   – crontab 是 cron 守护进程的配置文件,用于定义需要执行的定时任务。

   – 每个用户都可以有一个 crontab 文件,其中包含了用户自定义的定时任务。

   – crontab 文件由 cron 守护进程读取,并根据文件中定义的时间表来执行任务。

(3)cron 作业

        每个 cron 作业由六部分组成,分别表示时间(分钟、小时、日期、月份、星期几)和要执行的命令。

(4)cron和crontab的区别和联系

        cron 是负责处理定时任务的服务,而 crontab 是用于配置这个服务的文件。用户通过编辑自己的 crontab 文件来定义定时任务,然后 cron 守护进程会读取这些任务并按照预定的时间表执行它们。

三、 Cron 的配置文件

        Cron 的配置文件主要有两类:

1、系统级配置文件

        通常位于 /etc/crontab,以及 /etc/cron.d/ 目录下的其他文件。这些文件由系统管理员编辑,用于配置系统级的任务。

2、用户级配置文件

        每个用户都可以有自己的 crontab 文件,通过命令 crontab -e 编辑。这些文件用于配置用户的个人任务。

四、Cron 表达式

1、Cron 表达式的格式

        Cron 表达式由六个字段组成,用于指定任务的运行频率。格式如下:

        * * * * * command_to_execute

        解释如下:

– 第一个星号():分钟(0-59)

– 第二个星号():小时(0-23)

– 第三个星号():月份中的哪一天(1-31)

– 第四个星号():月份(1-12 或 JAN-DEC)

– 第五个星号():一周中的哪一天(0-6 或 SUN-SAT,0 和 7 都代表周日)

可以用如下图表示:

linux任务调度器:定时执行任务的工具 cron详解

2、特殊符号

        除了基本的时间字段外,Cron 还支持一些特殊符号,以便更灵活地定义任务的运行时间:

        – :匹配所有可能的值。

        – ,:用于指定多个值,例如 5,10,15。

        – -:用于指定一个范围,例如 5-10。

        – /:用于指定间隔,例如 /15 表示每 15 分钟。

        – @reboot:在系统启动时运行命令。

        – @yearly、@annually:每年运行一次。

        – @monthly:每月运行一次。

        – @weekly:每周运行一次。

        – @daily、@midnight:每天运行一次,在午夜时分。

        – @hourly:每小时运行一次。

3、示例

(1)每天凌晨 3 点运行命令 command:

       使用如下命令:       

         0 3    command

(2)每周一上午 9 点运行命令 command:

       使用如下命令:        

          0 9   1 command

(3) 每个月的第一天下午 2 点运行命令 command:

        使用如下命令:       

          0 14 1   command

(4)每 15 分钟运行一次命令 command:

        使用如下命令:       

          /15     command

(5)复杂表达式

0 12 * * * /root/test && cd /src/x64/ && sh abc-stop.sh && sleep 20s && sh abc-start.sh

        表示每天晚上12点钟,依次执行如下命令:

        /root/test           #执行/toot目录下的test程序         cd /src/x64/         #进入目录/src/x64/         sh abc-stop.sh   #执行脚本         sleep 20s            #睡眠20s         sh test-start.sh   #执行脚本文件

五、使用 Cron

1、创建和编辑 crontab 文件

(1)用户级 crontab

           – 使用 crontab -e 命令编辑用户的 crontab 文件。

           – 编辑完成后保存退出。

(2)系统级 crontab

           – 编辑 /etc/crontab 文件。

           – 编辑 /etc/cron.d/ 下的文件。

2、查看 crontab 文件

(1)用户级 crontab

  – 使用 crontab -l 查看用户的 crontab 文件。,如下图所示

linux任务调度器:定时执行任务的工具 cron详解

(2)系统级 crontab

        使用命令

        cat /etc/crontab

        查看 /etc/crontab 文件。

3、删除 crontab 文件

(1)用户级 crontab

        使用 crontab -r 删除用户的 crontab 文件。

六、示例命令(crontab)

1. 创建 crontab 文件

       使用如下命令:

        crontab -e  

2. 查看 crontab 文件  

     使用如下命令:

       crontab -l

   实际操作如下图所示:

linux任务调度器:定时执行任务的工具 cron详解

3. 删除 crontab 文件  

       使用如下命令:

         crontab -r  

七、其他

1、权限管理

        Cron 通常只允许拥有相应权限的用户和系统管理员配置任务。

2、安全注意事项

        确保 cron 作业不会被未经授权的用户修改或利用。

3、路径

        如果脚本或命令需要环境变量(如 PATH),请在脚本中显式设置或调用时使用完整路径。

4、邮件

        cron 作业的输出通常会通过电子邮件发送给 crontab 文件的所有者,如果系统配置了邮件发送功能。如果不想接收邮件,可以将输出重定向到 /dev/null 或日志文件。

5、系统级别的 crontab 文件

        系统级别的 crontab 文件(如 /etc/crontab)的格式可能略有不同,并允许指定运行作业的用户。

八、总结

        Cron 是一个强大的工具,用于自动化 Linux 系统中的周期性任务。通过编辑 crontab 文件,用户可以轻松地安排各种命令在特定时间执行。合理利用 Cron 可以显著提高系统的自动化程度和管理效率。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/134301.html

(0)
上一篇 2025-07-13 16:15
下一篇 2025-07-13 16:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信