您的位置首页 >精选问答 >

如何用systemd计时器替换cron作业

导读 systemd 带来的变化之一是一种新的作业安排方式,比 cron 更加巧妙。一些 Linux 发行版不再提供 cron。是时候检查一下 systemd 计...

systemd 带来的变化之一是一种新的作业安排方式,比 cron 更加巧妙。一些 Linux 发行版不再提供 cron。是时候检查一下 systemd 计时器了。

为什么 systemd 定时器正在取代 cron

cron的起源可以追溯到 1975 年的 Unix 版本 7。它的可靠性很快使其成为安排任务在指定日期和时间运行的最受欢迎的工具。不可否认,它的语法相当古怪。如果您不经常使用它,则每次您想要安排作业时可能都需要查找更详细的点。

在 cron 计划中,天和月从 1 开始编号。然而,一周中的天数从零到六,从周日到周六。在某些系统上,七也意味着星期日。但是,尽管这可能很奇怪,但它确实有效。

systemd 服务管理器带来的不仅仅是 init 引导管理器的简单替代。它提供的部分内容是 cron 的现代替代品,以 systemd 计时器的形式。这些提供了比 cron 更大的灵活性,并且不需要其他外部实用程序。它们内置于所有 systemd 发行版中。

这意味着计时器在所有 systemd 安装上的行为方式相同。cron 和类似 cron 的替代品有很多版本。如果您需要在多台计算机上实现标准化,systemd 可以让您的生活更轻松。相同的计时器将以相同的方式在所有这些计时器上运行。事实上,一些基于 systemd 的发行版不再将 cron 作为其标准产品的一部分。

毫不奇怪,包括Fedora在内的 Red Hat 衍生发行版不附带 cron,因为 systemd 是Red Hat 的一项举措。Arch 及其衍生产品不包括 cron,但这可能更多地与它们提供了这样一个最小的发行版有关,您可以填充适合的应用程序。其他发行版,例如 Solus,也不需要包含 cron。当然,您可以在您喜欢的任何发行版上安装 cron,但没有令人信服的理由这样做。

systemd 定时器如何工作

使用 systemd 计时器,您需要创建两个文件。一种是服务文件。当服务运行时,它会为您启动您的进程。因此服务文件需要了解您的目标进程。

您需要创建的第二个文件是计时器文件。这决定了服务何时启动。所以定时器文件需要知道你的服务文件。

定时器可以是实时的或单调的。实时计时器由日历事件触发。单调计时器在系统事件(例如启动)后的某个持续时间内触发。日志条目被添加到计时器事件的系统日志中,这有助于调试。

您可以使用 systemctl 命令的 status 选项列出计算机上的计时器。几个系统计时器是自动创建的,因此即使您没有创建任何计时器,该命令也会有输出。

标签:

免责声明:本文由用户上传,如有侵权请联系删除!