本文介绍在Fedora Linux系统下安装cron(cronie)及使用cron安排任务的方法,内容有:cron的一些优点、安装cron守护程序、运行cron守护程序、定义cron作业、使用crontab创建cron作业。
简介 Cron是一个调度守护程序,它以指定的时间间隔执行任务。这些任务称为cron作业,主要用于自动执行系统维护或管理任务。例如,您可以将cron作业设置为自动执行重复性任务,例如备份数据库或数据,使用最新的安全补丁更新系统,检查磁盘空间使用情况,发送电子邮件等等。可以将cron作业安排为按分钟、小时,每月的某天,某月、某周的某天或它们的任意组合运行。 附:cron的一些优点 这些是使用cron作业的一些优点: 您可以更好地控制作业的运行时间,即可以控制执行作业的分钟、小时、日期等。 它消除了为任务的循环和逻辑编写代码的需要,并且在不再需要执行作业时可以将其关闭。 作业在不执行时不会占用您的内存,因此您可以保存内存分配。 如果作业执行失败并由于某种原因退出,它将在适当的时间再次运行。
安装cron守护程序 Fedora Linux已预先配置为运行重要的系统任务以保持系统更新。有几个实用程序可以运行诸如cron、anacron、at和batch的任务。本文仅关注cron实用程序的安装。Cron随cronie软件包一起安装,该软件包还提供cron服务。 要确定软件包是否已经存在,请使用rpm命令: $ rpm -q cronie Cronie-1.5.2-4.el8.x86_64 如果安装了cronie软件包,它将返回cronie软件包的全名。如果您的系统中没有该软件包,则会显示该软件包未安装。 要安装,请输入以下命令: $ dnf install cronie
运行cron守护程序 crond服务根据来自配置文件的信息执行cron作业。但是,在将作业添加到配置文件之前,有必要启动crond服务,或者在某些情况下进行安装。什么是crond? Crond是cron守护程序(crond)的压缩名称。要确定crond服务是否正在运行,请键入以下命令: $ systemctl status crond.service
如果您没有看到类似的内容,包括“Active: active (running) since…”行,则必须启动crond守护程序。要在当前会话中运行crond服务,请输入以下命令: $ systemctl run crond.service 要将服务配置为在引导时自动启动,请键入以下命令: $ systemctl enable crond.service 如果出于某种原因希望停止运行crond服务,请使用stop命令,如下所示: $ systemctl stop crond.service 要重新启动它,只需使用重新启动命令: $ systemctl restart crond.service
定义cron作业 1、cron配置 这是cron作业的配置详细信息示例。这定义了一个简单的cron作业,可将git master分支的最新更改拉入克隆的存储库中: */59 * * * * username cd /home/username/project/design && git pull origin master 有两个主要部分: 第一部分是“*/59 * * * *”,这是计时器设置为每59分钟一次的位置。 该行的其余部分是该命令,因为它将从命令行运行。 在此示例中,命令本身包含三个部分: 1]、作业将以用户“username”的身份运行 2]、它将更改为目录 /home/username/project/design 3]、git命令运行以提取master分支中的最新更改。 2、时序语法 时间信息是cron作业字符串的第一部分。这确定了cron作业将运行的频率和时间。它按顺序包括5个部分:minute、hour、day of the month、month、day of the week(分钟、小时、一个月中的某天、月、一周中的天)。 这里是一种更图形化的解释语法的方法,可以在这里看到:
3、星号的使用 可以使用星号(*)代替数字,以表示该位置的所有可能值。例如,在分钟位置上的星号会使它每分钟运行一次。以下示例可能有助于更好地理解语法。 此Cron作业将始终每分钟运行一次: * * * * * [command] 斜线(/)表示分钟数。下面的示例每小时运行12次,即每5分钟运行一次: */5 * * * * [command] 下一个示例将每月运行一次,每月第二天的午夜(例如1月2日12:00 am,2月2日12:00 am,等等): 0 0 2 * * [command] 参考:在Linux平台下每5、10或15分钟执行一次定时任务(Cron Job)。 4、使用crontab创建cron作业 Cron作业在后台运行,并不断检查/etc/crontab文件以及/etc/cron.*/和/var/spool/cron/目录。每个用户在/var/spool/cron/中都有一个唯一的crontab文件。 这些cron文件不应直接编辑。crontab命令是用于创建、编辑、安装、卸载和列出cron作业的方法。 相同的crontab命令用于创建和编辑cron作业。而且更酷的是,您无需在创建新文件或编辑现有文件后重新启动cron。 $ crontab -e 这将打开您现有的crontab文件,或者在必要时创建一个文件。调用crontab -e时,默认情况下会打开vi编辑器。注意:要使用Nano编辑器编辑crontab文件,可以选择设置EDITOR=nano环境变量。 如果需要,使用选项-l列出所有cron作业,并使用-u选项指定用户: $ crontab -l $ crontab -u username -l 使用以下命令删除或清除所有cron作业: $ crontab -r 要删除特定用户的作业,您必须以root用户身份运行以下命令: $ crontab -r -u username 最后,说一句:cron作业似乎只是系统管理员的工具,但实际上与许多Web应用程序和用户任务有关。
相关主题 |