云网牛站
所在位置:首页 > Linux教程 > 在Fedora Linux系统下安装cron(cronie)及使用cron安排任务

在Fedora Linux系统下安装cron(cronie)及使用cron安排任务

2021-04-13 16:24:15作者:李群稿源:云网牛站

本文介绍在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

在Fedora Linux系统下安装cron(cronie)及使用cron安排任务

如果您没有看到类似的内容,包括“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(分钟、小时、一个月中的某天、月、一周中的天)。

这里是一种更图形化的解释语法的方法,可以在这里看到:

在Fedora Linux系统下安装cron(cronie)及使用cron安排任务

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应用程序和用户任务有关。

 

相关主题

在Linux系统下使用Crontab UI安全管理Cron定时任务

精选文章
热门文章