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

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

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

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

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

$ crontab -e

Cron 语法

与任何语言一样,了解其语法后,使用 cron 就会变得更加容易,你应该了解两种格式:

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

以上 cron 语法解释:

  • A: Minutes range: 0 – 59
  • B: Hours range: 0 – 23
  • C: Days range: 0 – 31
  • D: Months range: 0 – 12
  • E: Days of the week range: 0 – 7. Starting from Monday, 0 or 7 represents Sunday
  • 用户名:将此替换为您的用户名
  • /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

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

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

每个星期日在 04:05 运行 Linux 命令:

5 4 * * sun /path/to/linuxcommand

Cron 选项

列出 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:与midnight相同
  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的文章这里。里面有一些你可能会发现有用的资源。

Source:
https://www.tecmint.com/create-and-manage-cron-jobs-on-linux/