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 -e 打开的文件有很多信息,但关键部分是注释部分结尾之前的示例(注释用以#开头的行表示)。 #m h dom mon dow命令 0 5 * * 1 tar -zcf /var/backups/home.tgz / home / 在crontab文件的每一行上有6条信息: 对于每个项目(命令除外),您可以指定通配符。请看以下示例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文件: 大多数情况下,您不希望删除crontab文件,但您可能希望从crontab文件中删除一些行。 但是,如果要删除用户的crontab文件,请运行以下命令: crontab -r 更安全的方法是运行以下命令: crontab -i 操作系统在删除crontab文件之前要求进行验证。
如何删除Crontab文件