cron是一个调度守护进程,在指定的时间间隔执行任务,这些任务被称为玉米作业,主要用于自动化系统维护或管理任务。例如,您可以设置一个cron作业来自动执行重复性任务,例如备份数据库或数据、使用最新的安全补丁更新系统、检查磁盘空间使用情况、发送电子邮件等。cron作业可以按分钟、小时、天、月、周或其任意组合运行。cron的一些优势以下是使用cron作业的一些优势:您可以更好地控制作业何时运行。例如,你可以精确到分钟、小时、天等。它省去了编写循环任务逻辑的代码,当你不再需要执行任务时,你可以简单地关闭它。作业在不执行时不会占用内存,因此您可以节省内存分配。如果作业因某种原因失败并退出,它将在适当的时间再次运行。安装cron守护进程幸运的是,FedoraLinux预先配置为运行重要的系统任务以保持系统更新。有几个实用程序可以运行任务,例如cron、anacron、at和batch。本文仅关注cron实用程序的安装。cron与cronie包一起安装,它也提供cron服务。要确定一个包是否已经存在,使用rpm命令:$rpm-qcronieCronie-1.5.2-4.el8.x86_64如果安装了cronie,它将返回cronie包的全名。如果您的系统上没有安装它,它将显示未安装。使用以下命令进行安装:$dnfinstallcronie运行cron守护进程cron作业由crond服务执行,它读取配置文件中的信息。在将作业添加到配置文件之前,必须启动或安装crond服务。什么是克隆?crond是cron守护进程的缩写。要确定crond服务是否正在运行,请输入以下命令:$systemctlstatuscrond.servicecrond.service-CommandSchedulerLoaded:loaded(/usr/lib/systemd/system/crond.service;enabled;vendorpre>Active:active(running)sinceSat2021-03-2014:12:35PDT;1day21hagoMainPID:1110(crond)如果你没有看到像Active:active(running)since...这样的东西,你需要启动crond守护进程。要在当前会话中运行crond服务,请输入以下命令:$systemctlruncrond.service要将其配置为在引导时自动启动,请输入以下命令:$systemctlenablecrond.service如果对于由于某些原因,你想停止crond服务,使用停止命令如下:$systemctlstopcrond.service要重新启动它,只需使用重启命令:$systemctlrestartcrond.service定义一个cron作业cron配置下面是一个例子cron作业的配置详细信息。它定义了Createdasimplecronjobtopullthelategitmaster分支进入克隆仓库的st变化:*/59****usernamecd/home/username/project/design&&gitpulloriginmaster主要有两部分:第一部分是*/59****.这表示计时器设置为每59分钟执行一次。在此示例中,命令本身分为三个部分:作业将以用户username身份运行它将切换到目录/home/username/project/design运行git命令以拉取master分支中的最新更改时间语法为如上所述,时间信息是cron作业字符串的第一部分,如上所述。它决定了cron作业运行的频率和时间。它有5个部分,顺序如下:分钟小时星期几这是解释语法的更图形化的方式:.--------------minutes(0-59)|.------------小时(0-23)||.------------月中的第几天(1-31)|||.--------月(1-12)或一月、二月、三月、四月...||||.----星期几(0-6)(星期几=0或7)|||||或周日、周一、周二、周三、周四、周五、周六|||||*****user-namecommand-to-be-executeduseofasterisk可以使用符号(*)代替数字来表示该位置所有可能的值。例如,分钟位置的星号将使其每分钟运行一次。以下示例可能有助于更好地理解语法。此cron作业将每分钟运行一次:****[command]斜线表示分钟间隔数。以下示例将每小时运行12次,即每5分钟一次:*/5****[command]下一个示例将在每个月的第二天午夜(例如,1月2日上午12:00,212:00amontheFebruary2ndandetc.):002**[command](LCTT译注:关于cron时间格式,格式符号比较多,这里不展开)Createacronjobusingcrontabthecronjob会在后台运行,会不断检查/etc/crontab文件和/etc/cron.*/和/var/spool/cron/目录。每个用户在/var/spool/cron/中都有一个唯一的crontab文件。不应直接编辑这些cron文件。crontab命令是一种用于创建、编辑、安装、卸载和列出cron作业的方法。更酷的是,您无需在创建新文件或编辑现有文件后重新启动cron。$crontab-e这将打开您现有的crontab文件,或创建一个。调用crontab-e时,默认使用vi编辑器。注意:要使用Nano编辑crontab文件,您可以设置EDITOR=nano环境变量。使用-l选项列出所有cron作业。如果需要,使用-u选项指定用户。$crontab-l$crontab-uusername-l使用以下命令删除所有cron作业:$crontab-r要删除特定用户的作业,您必须以root身份运行以下命令:$crontab-r-uusername谢谢阅读。cron作业可能看起来像一个系统管理员工具,但它实际上与许多Web应用程序和用户任务相关。请参阅FedoraLinux文档中的自动化任务
