编辑 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 文件的每一行有六条信息:
- 命令运行的一天的分钟 (m)。
- 命令运行的一天中的小时 (h)。
- 命令运行的月份中的哪一天 (dom)。
- 命令运行的月份 (mon)。
- 命令运行的星期几(dow)。
- 命令。
对于每个项(命令除外),我们可以指定一个通配符。
查看以下示例 crontab 行:
30 18 * * * tar -zcf /var/backups/home.tgz /home/
在 30 分钟、18 小时和一周中的任何一天、一个月和一天,此 crontab 条目会将主目录压缩和 tar 到 /var/backups 文件夹。
在下面的示例中,将单词 command 替换为我们要运行的命令。
要让命令在每小时 30 分钟后运行,请运行以下命令:
30 * * * * 命令
要获取在下午 6 点以后每分钟运行的命令,请运行以下命令:
* 18 * * * 命令
因此,我们必须小心设置 crontab 命令。
例如:
* * * 1 * 命令
此命令在 1 月每周的每一天的每一小时的每一分钟运行。
要在 1 月 1 日凌晨 5 点运行命令,请在 crontab 文件中输入以下命令:
0 5 1 1 * 命令
权限
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 命令。
将脚本放在 Cron 文件夹中
将脚本放入相关文件夹中,让它们定期运行。
例如,打开终端窗口并运行以下 ls 命令:
ls /etc/cron*
该命令列出每小时、每天、每周和每月运行的程序或者脚本。
这些文件夹是模糊的。
例如,每天意味着脚本每天运行一次,但我们无法控制脚本在当天运行的时间。
这就是 crontab 文件的用武之地。
通过编辑 crontab 文件,我们可以在希望它运行的确切日期和时间运行脚本或者程序。
使用 crontab 文件精确调度重要命令
- 显示 crontab 的内容: crontab -l
- 使用以下命令编辑 crontab:crontab -e
如何删除 Crontab 文件
大多数情况下,我们不会想要删除 crontab 文件。
但是,我们可能希望从 crontab 文件中删除一些行。
要删除用户的 crontab 文件,请运行以下命令:
crontab -r
一种更安全的方法是运行以下命令:
crontab -i
操作系统在删除 crontab 文件之前要求验证。
本文解释了如何使用 cron,它是 Linux 中的一个守护进程,它定期运行进程。
它检查系统上的某些文件夹是否有脚本在一系列文件夹中运行,包括 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly;还有一个名为 /etc/crontab 的文件。