Skip to main content

如何编辑Linux Crontab文件以计划作业

11.1 软件包管理概述 -Linux云主机管理运维 (六月 2025)

11.1 软件包管理概述 -Linux云主机管理运维 (六月 2025)
Anonim

Linux中的一个守护进程叫 cron的 定期运行进程。它会检查系统上的某些文件夹,以便在一系列文件夹中运行脚本,包括/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly和/etc/cron.monthly。还有一个名为/ etc / crontab的文件。

将脚本放在Cron文件夹中

您可以简单地将脚本放入相关文件夹中,以使它们定期运行。

例如,打开终端窗口并运行以下ls命令:

ls / etc / cron *

您将看到每小时,每天,每周和每月运行的程序或脚本列表。

这些文件夹的问题在于它们有点模糊。例如, 日常 表示脚本每天运行一次,但您无法控制脚本在该日运行的时间。

这就是crontab文件的用武之地。

通过编辑crontab文件,您可以获得一个脚本或程序,以便在您希望它运行的确切日期和时间运行。

权限

crontab命令要求用户具有编辑crontab文件的权限。基本上有两个文件用于管理crontab权限:

  • /etc/cron.allow
  • /etc/cron.deny

如果文件/etc/cron.allow存在,那么想要编辑crontab文件的用户必须在该文件中。如果cron.allow文件不存在但存在/etc/cron.deny文件,则该文件中的用户不得存在。如果两个文件都存在,则/etc/cron.allow将覆盖/etc/cron.deny文件。如果两个文件都不存在,那么用户是否可以编辑crontab取决于系统配置。

root用户始终可以编辑crontab文件。您可以使用su命令切换到root用户,也可以使用sudo命令运行crontab命令。

编辑Crontab文件

具有适当权限的每个用户都可以创建自己的crontab文件。 cron命令基本上查找所有crontab文件并遍历每个文件。

要检查是否有crontab文件,请运行以下命令:

crontab -l

如果您没有crontab文件,则显示消息“no crontab for “将出现,否则将显示您的crontab文件(此功能因系统而异,有时它根本不显示任何内容,有时显示,”不要编辑此文件“)。

要创建或编辑crontab文件,请运行以下命令:

crontab -e

打开的文件有很多信息,但关键部分是注释部分结尾之前的示例(注释用以#开头的行表示)。

#m h dom mon dow命令

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

在crontab文件的每一行上有6条信息:

  • 命令运行的那一刻(m)
  • 命令运行的一天中的小时(h)
  • 命令运行的那一天(dom)
  • 命令运行的月份(星期一)
  • 命令运行的星期几(dow)
  • 命令

对于每个项目(命令除外),您可以指定通配符。请看以下示例crontab行:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

在30分钟,18小时以及任何一天,一个月和一周中,此crontab条目将压缩并将主目录tar转至/ var / backups文件夹。

要使命令在每小时过去30分钟后运行,请运行以下命令:

30 * * * *命令

要使命令在每天早上6点之后运行,请运行以下命令:

* 18 * * *命令

因此,您必须小心设置crontab命令。

例如:

* * * 1 *命令

该命令将在1月份每周的每一小时的每一小时运行。

要在1月1日凌晨5点运行命令,您可以使用以下命令访问crontab文件:

0 5 1 1 *命令

如何删除Crontab文件

大多数情况下,您不希望删除crontab文件,但您可能希望从crontab文件中删除一些行。

但是,如果要删除用户的crontab文件,请运行以下命令:

crontab -r

更安全的方法是运行以下命令:

crontab -i

操作系统在删除crontab文件之前要求进行验证。