crontab 文件语法

在 Linux 系统上默认安装并激活 cron 守护进程。
它每分钟检查一次是否为当前时间定义了任何作业。
cron 守护进程使用一个名为 crontab 的文件,该文件包含一个作业列表以及它们何时运行。
整个 Linux 系统都存在一个 crontab 文件。
系统上的每个用户也可以定义自己的 crontab 文件。

crontab 文件中的每一行定义了一个 cron 作业。
前五个字段(由空白字符分隔——空格或者制表符)定义何时
应该运行 cron 作业。
它们使用以下语法:

字段编号字段标签范围
1分钟0-59
2小时0-23
3一个月中的哪一天1-31
41-12
5工作日0-7

在用户 crontab 文件中,后续字段(字段 6 及以上)指定要运行的命令及其选项(如果有)。
在系统 crontab 文件中,第 6 个字段指定用于执行其余(第 7 个字段及以上)字段中的命令的用户。

cron 守护进程可以运行任何命令或者 shell 脚本。
但是,在运行命令或者 shell 脚本时,没有用户交互可用。

以下是配置这些字段的准则:

  • 如果我们希望作业每分钟、每小时、每天或者每月运行一次,请在相应字段中输入星号 (*)。
  • 我们可以在以逗号分隔的列表中的一个字段中包含多个条目。
  • 我们可以指定一个范围,其中开始值和结束值用连字符分隔。
  • 我们可以使用 /n 配置时间步长(其中 n 代表步长的大小)。
  • 我们可以使用名称的前三个字母(例如,MON、TUE、JAN、FEB)指定月份和工作日。这些字母不区分大小写。但是,当我们使用字母时,我们不能使用范围或者列表。
  • 代表工作日的数字从星期日的 0 开始并连续贯穿整个星期,7 再次代表星期日。例如,3 是星期三,6 是星期六。
更多: zhilu jiaocheng

定义用户作业

用户使用 crontab 命令创建和维护自己的 crontab 文件。
以下选项可与 crontab 命令一起使用:

选项描述
crontab -e创建或者编辑作业。 使用 vi 编辑器。
crontab file使用指定的文件替换当前用户的任何现有 crontab 文件,假设该文件包含使用正确语法的作业列表。
crontab -l显示当前作业。
crontab -r删除所有作业。

例如,假设我们要定义一个 cron 作业,该作业在每晚 5:05 PM 将用户主目录的内容复制到安装在 /media/USB 中的外部 USB 驱动器。
我们需要执行以下操作:

  1. 打开终端会话。

  2. 在 shell 提示符下,输入“crontab -e”。

# crontab -e

如果这是我们第一次定义 cron 作业,则会为用户创建一个空白的 crontab 文件。

  1. 按 I 键,然后输入以下内容:
5 17 * * * cp ~/* /media/USB
  1. 按 Esc,然后输入 ':wq!'。

  2. 我们可以通过创建以下两个文件来指定允许哪些用户创建 cron 作业,哪些不允许:

  • /etc/cron.allow :此文件中列出的用户可以创建 cron 作业。
  • /etc/cron.deny :未在此文件中列出的用户可以创建 cron 作业。

如果 /etc/cron.allow 文件存在,则它是唯一评估的文件;在这种情况下 /etc/cron.deny 将被忽略。
如果这两个文件都不存在,则只允许 root 用户定义用户 cron 作业。

如何在 Linux 中使用 Cron 安排作业

我们会发现有许多任务需要在 Linux 系统上定期执行。
例如,我们可能需要更新数据库或者备份 /home/ 目录中的用户数据。
虽然我们可以手动运行这些任务,但如果我们将 Linux 系统配置为自动运行它们会更高效(也更可靠)。

这样做的一种选择是使用 cron。
cron 守护进程 (/usr/sbin/cron) 允许我们安排将定期为我们执行的作业。

日期:2020-09-17 00:13:51 来源:oir作者:oir