使用OnCalendar
systemd 计时器,我可以创建类似的程序每 5 分钟运行一次。
OnCalendar=*:0/5
是否可以每分钟运行一次结束于 5(00:05、00:15、00:25……)?
和/或每分钟以 0 结尾(00:00、00:10、00:20……)?
主要目标是在 2 台服务器上安装计时器,以便每台服务器在空闲时间运行;如果一台出现故障,另一台将至少每 10 分钟运行一次(而不是 5 分钟)。
答案1
解决方案:
OnCalendar=*:5/10
相当于*:5,15,25,35,45,55
。
为了确保结果,请使用以下命令:
systemd-analyze calendar --iterations=8 '*:5/10' | grep Iter
Iter. #2: Sun 2022-02-20 00:25:00 CET
Iter. #3: Sun 2022-02-20 00:35:00 CET
Iter. #4: Sun 2022-02-20 00:45:00 CET
Iter. #5: Sun 2022-02-20 00:55:00 CET
Iter. #6: Sun 2022-02-20 01:05:00 CET
Iter. #7: Sun 2022-02-20 01:15:00 CET
Iter. #8: Sun 2022-02-20 01:25:00 CET
答案2
我不确定这是否因发行版而异。无论如何,我使用的是 RHEL8。试试这个:
[Timer]
OnCalendar=*-*-* *:05,15,25,35,45,55:00
使用该systemctl daemon-reload
命令确保 systemd 知道这些更改。
注意:您不应编辑 /usr/lib/systemd 目录下的文件。使用 systemd,您可以将单元文件复制到 /etc/systemd/system 目录并编辑该副本。