如何调整OpenSuSE 15.5上MD RAID定期检查的执行时间与频率
如何调整OpenSuSE 15.5上MD RAID定期检查的执行时间与频率
我来帮你解决这个问题——之前你修改后出现两次检查,是因为systemd的override配置文件是追加叠加而不是直接替换原配置的,原有的周日1点规则还在生效,所以才会重复触发。下面一步步教你正确的修改方法:
先理清两个相关的Timer
你看到的mdcheck_start.timer是负责启动全新RAID检查的定时器,而mdcheck_continue.timer是用来恢复中途中断的检查(比如服务器在检查过程中关机,下次开机后它会触发继续未完成的任务),两个都可以按需调整。
正确修改Timer的步骤
1. 修改启动检查的Timer(mdcheck_start.timer)
首先编辑它的override配置文件:
sudo systemctl edit mdcheck_start.timer
在打开的编辑器里,先清空原有的OnCalendar规则(不然会和新规则叠加),再添加你想要的时间和频率:
[Timer] # 先清空原有的触发规则,避免重复 OnCalendar= # 示例1:改成每周六23点执行 OnCalendar=Sat *-*-* 23:00:00 # 示例2:改成每两周的周六23点执行(结合Interval实现间隔) # OnCalendar=Sat *-*-* 23:00:00 # Interval=2weeks # 如果你服务器不是24/7,建议关闭Persistent,避免关机期间错过的任务开机后强制执行 Persistent=false
保存退出编辑器后,重新加载systemd配置并重启Timer:
sudo systemctl daemon-reload sudo systemctl restart mdcheck_start.timer
然后用下面的命令验证新的触发时间:
sudo systemctl list-timers mdcheck_start
2. (可选)修改恢复检查的Timer(mdcheck_continue.timer)
如果你想调整中断后恢复检查的时间(比如不要在凌晨1:05),用同样的方法修改:
sudo systemctl edit mdcheck_continue.timer
输入配置:
[Timer] OnCalendar= # 改成和启动检查时间相近的时间,比如周六23:05 OnCalendar=Sat *-*-* 23:05:00
同样执行重载和重启操作:
sudo systemctl daemon-reload sudo systemctl restart mdcheck_continue.timer
为什么之前会重复执行?
systemd的drop-in override文件(就是你编辑的/etc/systemd/system/mdcheck_start.timer.d/override.conf)是追加到原系统配置上的,而不是完全替换。你之前只加了新的OnCalendar规则,原配置里的OnCalendar=Sun *-*-* 1:00:00依然有效,所以两个时间都会触发检查,导致重复执行。必须先设置OnCalendar=(空值)来清空原规则,再添加新的。
额外提示
- 如果你想了解更多systemd日历表达式的语法,可以输入
man systemd.timer查看详细说明,支持非常灵活的时间配置(比如指定特定日期、间隔周期等)。 Persistent=false适合你的非24/7服务器,这样如果服务器在应该执行检查的时间关机了,不会在开机后补执行,而是直接等到下一个周期。
备注:内容来源于stack exchange,提问作者Neppomuk
相关产品推荐
相关产品推荐

