为什么我在 webmin 中看到的 cron 作业比在 `crontab -e` 中看到的要多得多?

为什么我在 webmin 中看到的 cron 作业比在 `crontab -e` 中看到的要多得多?

我刚刚开始学习 cron 作业。基本上我将使用 webmin 来管理我的 cron 作业,我也在阅读有关 cron 作业的一些基本信息。

到目前为止,我已经了解到它/etc/crontab存储 cronjobs 并/var/spool/cron/crontabs为不同的用户提供 cron 作业,并且当我这样做时,crontab -e我可以查看和编辑当前用户的 cron 作业。

Root 是我的 Ubuntu 14.04 中唯一的用户,我在上述位置找到的 crontab 文件中只有几行。然而,在 webmin 中,这就是我看到的

在此输入图像描述

这比我在这些文件中看到的要多得多。所以我的问题是:我在 webmin 中看到的所有这些 cronjobs 来自哪里?

答案1

有几个地方存储了 cron 作业。

主要的地方是/etc/crontab(在某些系统上,这是唯一的地方)。该文件只能由 root 编辑,并且通常允许指定作业应以哪个用户身份运行。

在某些系统上,还有一个目录 - /etc/cron.d- 补充/etc/crontab.这里的文件包含类似于所用的行/etc/crontab(通常由用户按指定运行),并且基本上添加到/etc/crontab.它使包可以轻松地将条目添加到主 crontab 文件中。

然后是每用户的 crontabs - 包括 root、普通用户和一些系统用户(通常由软件包添加) - 可以在/var/spool/cron/crontab用户特定的文件下找到......这就是您使用crontab -e.在某些系统上,可以通过使用/etc/cron.allow或来阻止部分或所有用户/etc/cron.deny

您可以通过使用#.

最后我们有名为/etc/cron.hourlycron.dailycron.weekly的目录cron.monthly。这些包含 shell 脚本 -不是crontab 条目,例如/etc/cron.d.但是,cron 守护程序将查看这些目录,并在适当的时间运行这些脚本。您可以找到“run.daily”、“run.weekly”和类似的条目 - 通常在/etc/crontab- 这是实际解析和运行这些脚本的内容。要禁用这些目录中的脚本,删除执行权限应该可以解决问题。

这些问题以及一般情况下的另一个问题cron是计算机是否打开离开,在一些 cron 条目应该运行的时期。如果是这种情况,这些作业可能(几乎)永远不会运行。一些cron守护进程有解决这个问题的机制,或者使用一个额外的类似 crond 的程序(例如anacron) - 但一般来说,运行的计算机cron应该是每时每刻。

此外,at-and batch-机制在某些系统上作为 cron-jobs 运行,而不是由它自己的专用守护进程运行。

+++

您见过的大多数奇怪的条目都是由包添加到/etc/cron.{hourly|daily|weekly|monthly}目录中的 shell 脚本。它们可能会执行诸如刷新缓冲区、压缩日志、添加更新或进行一般清理之类的操作。如前所述,这些并不是真正的 crontab 条目,而是 shell 脚本...只是cron会检查这些目录,并不时运行它们的内容。

明显webmin检查全部cron 相关目录,并列出所有条目。

除非条目/脚本 - 在 /etc/crontab、/etc/cron.d、/etc/cron.d 中。特定时间的或 /var/spool/cron/crontab/用户- 是为你提供一些服务知道你和你的系统是绝对不使用(例如,uucpnews,在不使用 uucp 或运行新闻服务器的计算机上);最好保持原样。无论如何,大多数这些 cron 作业都会在“非工作时间”(例如半夜)运行,并且应该不会很引人注目。毕竟,“如果它没有坏,就不要修理它”。

相关内容