掌握Cron作业并自动执行基本服务器任务

网站托管 旨在简单、直接和完美的专业人士在旅途中,根本无法将每一天的每一个小时都奉献给 管理他们的托管服务器 和相关的任务。

为此,几乎所有基于 Unix 或 Linux 提供称为“Cron Job”或“ Crontab”。

此软件实用程序非常类似于Microsoft Windows中的任务调度程序,因为它可以被告知在特定时间执行某些操作,从而使用户无需手动执行这些任务。 当考虑到许多例行服务器维护,备份和通信过程可能需要数小时和数小时才能完成时,这一点尤为重要。 大多数人只是想在办公室度过一天后回家休息,而不是晚上备份文件和管理联系人。

这些人很幸运,因为每个任务可以每天,每周或每月安排,甚至在某些情况下甚至可以相距更远,并且可以在Crontab实用程序中向服务器提供有关如何执行任务的特定说明,如何知道完成的时间以及实际完成的任务时该怎么做。

用户可以放松,而服务器可以完成所有繁重的工作数小时; 或者他们可以简单地安排工作在他们自己的办公室努力工作时完成。 因为它是自动化的,所以Cron工作几乎可以在一天中的任何时间发生。

学习使用Cron作业的格式来告诉时间

Cron的工作并不是一件容易掌握的事情; 事实上,它被广泛认为是标准上最先进的配置之一 Linux or Unix的 网络服务器。 这部分是因为用于编程这些工作的语言过于陈旧,在某些情况下完全倒退。 当谈到有关Cron工作或Cron标签的某个时间时,事情肯定是倒退的,颠倒的,有点令人困惑。

通过Cron作业告诉时间的格式是这样的:

星期几,每月一天,每周一天

它只是一条线,偶数和命令在一个统一的收缩中是并排的。 这足以让大多数开发人员和服务器运营商畏缩,事实上,他们中的许多人都会这样做,直到他们开始开发高效的Cron工作。

值得注意的是,Cron工作时间的每个方面都是数字的; 没有月份名称日名称,或在执行任务的整个开发期间使用的其他词语。

因此,让我们在7月10th为30:7设置一个Cron作业,以便了解Cron作业在严格数字时的工作时间。

30 10 07 07 *

上面的例子说明工作应该在第七个月的第七天的第十个小时的第30分钟完成。 即使月份或日期只是一位数,所有数字都是两位数。 记住这一点非常重要,因为单个数字通常会导致Cron作业无效,而且根本不会执行。 在con结构的末尾,星号表示应该在一周中的任何一天执行作业。 这很重要,因为将它设置为星期三的03意味着该任务仅在7月7th执行,如果那天是星期二。 这种情况很可能每七年或八年发生一次,这对大多数开发人员来说都是有吸引力的。

设置Cron作业时要考虑的另一个重要考虑因素是小时格式是24小时的军事时间而不是12小时的民用时间。 要将Cron作业的时间更改为10 pm,小时将更改为22而不是当前的10。

Cron工作实例

最后,如果用户仅希望每天,每月或甚至每年完成一项任务,他们可以完全跳过设置特定时间的过程。 相反,Cron作业过程提供了简单地使用变量来确定何时在这些频繁的间隔上完成作业。 这些包括:

  • @日常
  • @monthly
  • @每年

由于无法使用小时和分钟严格控制和确定时间,因此根据服务器的内部时间,按照要求的间隔,这些作业将在午夜时分发生。 这意味着@monthly间隔将在每月第一天的正午夜发生。 @yearly间隔将发生在每年第一天的正午夜; @daily间隔将在一年中的每一天的正午夜发生。

这比设置特定日期,时间和星期几容易得多,但是在月或年的第一天午夜执行的某些任务可能对某些客户有一些缺点。 在安排在午夜时分发生的任务时,始终牢记管理员和站点访问者的需求。

掌握“ COMMAND”变量及其处理方法

从上面的示例中可以看出,构建一个实际的 Cron 作业相对容易。 必须先定义日期,然后立即定义 Cron 作业的功能。 该功能实际上可以是任何东西,包括运行 PHP 脚本或运行将服务器的文件和数据存储在远程或本地文件中的自定义备份脚本。 为了澄清起见,我们将在之前使用的示例的基础上构建并指示 Cron 作业运行 PHP 脚本于 7 月 10 日上午 30 点 XNUMX 分进行。 这个 PHP 脚本将被称为“备份。php”,我们假设 PHP file 是一个完整的备份脚本,当服务器指示这样做时,它会在每月 XNUMX 日收集、压缩和存储站点文件。 这是它的样子:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup。php

当这个 Cron 作业进入服务器的 Cron 选项卡列表时,它会在每年的 10 月 30 日上午 7:XNUMX 自动执行。 它将运行 PHP 位于“backup-scripts”目录中的备份脚本,这就是 Cron 作业设置的真正天才之处。

它不需要用户的高级命令来执行诸如站点备份和缓存刷新之类的操作,它只是让用户能够以指定的时间间隔或特定日期的特定时间执行现有脚本。 这意味着没有高级 编程 需要的知识超出了用户已知的范围。 PHP 完全能够备份站点文件,以及更高级的文件和编程语言,更复杂的用户可能会为其开发 Linux 服务器。

这个简单的设置几乎可以用来做任何事情,只要预先编写的脚本提供独立于用户输入的这些操作的执行。 这确实意味着在 Cron 选项卡中由 Cron 作业执行的任何脚本都必须完全自动化并且能够自行执行。 例如,告诉 Cron 作业执行 例如: WordPress 和 Weebly , 每天在同一时间索引或主题文件。 根本没有定义任何动作或自动化流程,虽然 Cron 作业肯定会执行文件,但它什么也不做,并且会保持静止,直到以另一种方式提供用户输入。

因此,如果编写或下载备份脚本或其他人以使用Cron作业,请始终确保他们只需要零用户输入即可成功执行其功能。 自动化任务计划程序必须与其执行的文件中的自动化进程配对。 这条规定没有例外。

掌握典型服务器上的整体Cron选项卡文件

指定执行的每个特定Cron作业都位于一个更大的文件中,该文件称为Cron选项卡。 一些服务器有多个Cron选项卡,用于多种类型的应用程序和自动输入,但这种情况很少见,主要是为最先进的服务器运营商和所有者保留的。 只有一个Cron选项卡文件的用户可以使用以下命令完整地编辑,删除或查看文件,列出每个特定的自动任务以便在文件中查看。

crontab -r

此命令将删除(因此为“ r”)或删除整个Cron选项卡文件本身。 这将有效清除所有命令和自动脚本,并将其还原到可以重建的空白文件中。 对于那些设法损坏文件或以某种方式不合适的任务和时间的用户来说,这是一个合适的选择。 有时,从头开始更容易。

crontab -e命令

在这种情况下,“ e”代表“编辑”。 那些想要编辑Cron选项卡中描述的功能而不是完全删除文件的用户可以将该命令带到命令行编辑器,以允许他们添加新任务,删除旧任务或更改适用的计划。 Cron选项卡文档中列出的每个Cron作业的时间。

crontab -l

在这种情况下,将“ L”与“ look”相关联就很容易记住。 使用此命令,服务器管理员可以简单地查看其Cron选项卡文件的全部内容,而无需将其完全从服务器中删除,也无法编辑内容。 Cron选项卡内容的这种只读显示非常适合记住哪些时间安排了哪些任务,以及验证文件本身的完整性。

为什么掌握Cron作业Cron Tab自动化文件很重要

一般来说,服务器的唯一自动化是其硬盘的旋转和其硬件功能的性能。 但是,除此之外,服务器必须经过培训和指导才能执行常规和非同寻常的任务,而不仅仅是显示软件控制面板或升级安装 PHP 或用户放置在硬盘上的 Perl。

重要的是要记住,服务器可以定期执行的最基本功能之一是创建数据和设置的站点备份。 没有Cron作业,几乎没有办法自动化这个过程,并且由于互联网的性质以及每天通过站点的所有恶意访问者,无法每天或每周自动执行此过程可能会导致重大问题和灾难性的数据丢失。

不过,除此之外,还有许多任务应该使用Cron作业流程自动完成。 这些任务包括清除任何可能向网站访问者显示过时图像或打印内容的网站缓存; 它还包括删除旧文件,清理旧目录和图像,以及确保存储在服务器硬盘驱动器上的所有内容都是最新且未损坏的。

就像一台健康的个人电脑会自动安排磁盘维护, 杀毒软件 和恶意软件扫描、软件更新和文件删除,必须配置一个健康的服务器来照顾自己并保持良好的信誉。 否则,它很容易受到崩溃、黑客攻击和数据丢失的影响,这将导致利润、广告、内容创建甚至搜索引擎排名状态的损失。

易于学习,易于部署

在标准Cron选项卡中创建Cron作业是服务器管理员可以执行的最简单的操作之一。

该过程位于标准命令行中,并将每个时间段分解为两位数代码。

因为它不需要任何新的编程语言的额外知识来自动化任务,所以该服务基本上建立在管理员已经拥有的现有编程和服务器操作知识的基础上。 在这种情况下,没有理由不开始自动化基本服务器功能并确保站点数据和操作的完整性。

作者照片

文章 Jerry 低