网站搜索

如何在 Linux 上创建和管理 Cron 作业


Cron 是 Linux 最有用的工具之一,也是开发人员最喜欢的工具,因为它允许您使用通用脚本和特定于任务的脚本在特定时间段、日期和时间间隔运行自动化命令。根据该描述,您可以想象系统管理员如何使用它来自动执行备份任务、目录清理、通知等。

Cron 作业在后台运行,并不断检查 /etc/crontab 文件、/etc/cron.*//var/spool/cron/ 目录。 cron 文件不应直接编辑,每个用户都有一个唯一的 crontab。

那么你应该如何创建和编辑 cron 作业呢?使用 crontab 命令。 crontab 是用于创建、编辑、安装、卸载和列出 cron 作业的方法。

创建和编辑 cron 作业的命令是相同且简单的。更酷的是,您无需在创建新文件或编辑现有文件后重新启动 cron。


crontab -e

定时语法

就像任何语言一样,当您了解 cron 的语法时,使用它会容易得多,并且您应该知道两种格式:


A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh

上述cron语法解释:

  • A:分钟范围:0 – 59
  • B:小时范围:0 – 23
  • C:天范围:0 – 31
  • D:月份范围:0 – 12
  • E:一周中的几天范围:0 – 7。从周一开始,0或7代表周日
  • 用户名:将其替换为您的用户名
  • /path/to/command – 您要调度的脚本或命令的名称

那不是全部。 Cron 使用 3 个运算符符号,允许您在一个字段中指定多个值:

  1. 星号(*)指定字段的所有可能值
  2. 逗号(,)指定值列表
  3. 破折号(-)指定值范围
  4. 分隔符(/)指定步长值

现在您已经了解了 Cron 的语法和运算符,让我们看一些 cron 示例。

Cron 作业示例

运行 cron 命令的第一步是使用以下命令安装 crontab:


crontab -e

每天凌晨 3 点运行/root/backup.sh


0 3 * * * /root/backup.sh

每月二号下午 4:30 运行 script.sh

30 16 2 * * /path/to/script.sh

在一周中晚上 10 点运行 /scripts/phpscript.php

0 22 * * 1-5 /scripts/phpscript.php

每天午夜后、凌晨 2 点和凌晨 4 点后23 分钟运行 perlscript.pl

23 0-23/2 * * * /path/to/perlscript.pl

每周日 04:05 运行 Linux 命令:

5 4 * * sun /path/to/linuxcommand

计划任务选项

列出 cron 作业。


crontab -l
OR
crontab -u username -l

删除所有 crontab 作业。

crontab -r

删除特定用户的 Cron 作业。


crontab -r -u username

crontab 中的字符串

字符串是开发人员最喜欢的东西之一,因为它们通过消除重复编写来帮助节省时间。 Cron 有特定的字符串,您可以使用它来更快地创建命令:

  1. @hourly:每小时运行一次,即“0 * * * *
  2. @midnight:每天运行一次,即“0 0 * * *
  3. @daily:与午夜相同
  4. @weekly:每周运行一次,即“0 0 * * 0
  5. @monthly:每月运行一次,即“0 0 1 * *
  6. @annually:每年运行一次,即“0 0 1 1 *
  7. @yearly:与@annually相同
  8. @reboot:每次启动时运行一次

例如,这是每天备份系统的方法:

@daily /path/to/backup/script.sh

此时,您已具备使用 Cron 创建和管理系统任务所需的一切。您现在可以开始使用计划命令设置和维护多个环境。

您是多少 Cron 用户?您可以为本文提供任何详细信息吗?讨论框如下。

当您足够了解 Crontab 的工作原理后,您可以使用这些漂亮的 Crontab 生成器实用程序免费生成 crontab 行。

另外,您可以在此处阅读 Ubuntu 有关如何使用 Cron 的文章。它包含您可能会觉得有用的资源。