如何编辑Linux Crontab文件以安排作业

介绍

Linux中有一个叫做cron的守护进程,用于定期运行进程。

这样做的方式是检查系统上的某些文件夹以便脚本运行。 例如,有一个名为/etc/cron.hourly的文件夹,/ etc / cron.daily,/etc/cron.weekly和/etc/cron.monthly。 还有一个名为/ etc / crontab的文件。

默认情况下,您可以简单地将脚本放入相关文件夹中以使其定期运行。

例如,打开一个终端窗口(通过按CTRL,ALT和T)并运行以下ls命令

ls / etc / cron *

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

这些文件夹的麻烦在于它们有点模糊。 例如,日常意味着脚本每天运行一次,但您无法控制该脚本在当天运行的时间。

这就是crontab文件进入的地方。

通过编辑crontab文件,您可以获得脚本或程序在您想要运行的确切日期和时间运行。 例如,也许你想在每天晚上6点备份你的文件。

权限

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

如果文件/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文件,则会显示消息“没有的crontab”,否则将显示您的crontab文件(此功能因系统而异,有时它根本不显示任何内容,有时显示“”不要编辑这个文件“)。

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

crontab -e

默认情况下,如果没有选择默认编辑器,则会要求您选择要使用的默认编辑器。 就我个人而言,我喜欢使用nano,因为它非常简单易用,并且可以从终端运行。

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

#mh dom mon dow命令

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

有6条信息适合crontab文件的每一行:

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

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

上述命令的意思是在30分钟,18小时以及每周的任何一天,每月和每天运行一个命令,将主目录压缩到/ var / backups文件夹。

为了让命令在每隔30分钟运行一次,我可以运行以下命令:

30 * * * *命令

为了得到命令,每分钟运行一次,我可以运行以下命令:

* 18 * * *命令

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

例如:

* * * 1 *命令

上述命令将在1月份每周的每一天的每一小时的每一分钟运行一次。 我怀疑这是你想要的。

要在1月1日凌晨5点运行一个命令,你需要在crontab文件中使用以下命令:

0 5 1 1 *命令

如何删除Crontab文件

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

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

crontab -r

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

crontab -i

这问了一个问题:“你确定吗?” 在删除crontab文件之前。