我注意到,在Debian相关系统,在系统级的crontab脚本/etc/cron.hourly
,/etc/cron.daily
......正在逐步赞成systemd定时器退役。例如:
$ cat logrotate
#!/bin/sh
# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then
exit 0
fi
...
Run Code Online (Sandbox Code Playgroud)
我认为一个目标是逐步淘汰 cron 和 anacron。(见注 1)
对我来说,cron 的一个关键用例是用户定义的 crontabs ( crontab -e
),它允许用户安排自己的作业以自己的用户身份运行,而无需系统管理员权限。
systemd 中是否有任何功能(当前或计划中)允许非管理员用户安排重复性任务?
注 1:
稍微削弱了之前的陈述,除了那些对 cron 的坏话和对 systemd 计时器的赞美之外,我没有发现任何特别好的讨论。我没有发现任何证据表明这个方向是由 Linux 发行版的众神传下来的。但是我确实注意到它是一种旅行方向。因此,此声明仅基于以下想法:如果这是一个旅行方向,并且随着时间的推移,我希望大多数/所有包最终都采用相同的方式并使一个系统 (cron) 变得冗余。
用户可以设置systemd 计时器,基本上是通过在其中创建服务和计时器~/.config/systemd/user
并启用计时器。
从用户定义的 cron 作业切换到 systemd 计时器会丢失两个主要功能(好坏取决于情况):
与 cron 作业相比,使用 systemd 计时器增加了许多可能性;例如,时间规范比 cron更具表现力,并且可以将计时器配置为满足其他要求,例如“仅在特定 VPN 启动时”。(当然,所有这些细节也可以写在 cron 作业中......)我还发现 systemd 计时器比 cron 作业更易于管理:很容易看到计时器的状态以及下次它会触发的时间。
在 Debian 中,您所看到的模式用于避免重复性任务运行两次,一次由 systemd 运行,另一次由 cron 或 anacron(无论出于何种原因)运行。这并不意味着退役 cron 或 anacron有一个总体目标。
归档时间: |
|
查看次数: |
703 次 |
最近记录: |