RockyLinux 8中dnf-automatic配置Gotify通知与定时器设置问题
dnf-automatic Gotify 配置校验
你当前的配置无法正常实现推送,核心问题是command_format参数设置错误:
- 现有配置仅会执行无参数的
gotify push命令,不会传入通知正文,和你预期的gotify push "body"调用逻辑不符。 - 根据配置注释说明,
{body}是已经完成shell转义的通知正文变量,你可以二选一使用以下正确配置:- 方案1(完全匹配你的预期调用格式,推荐):直接通过命令参数传递正文,对应配置片段如下
[emitters] emit_via = command [command] command_format = "gotify push {body}" stdin_format = "" - 方案2:通过标准输入传递正文(适合通知内容过长、避免命令行参数长度超限的场景),需要给gotify-cli加
-参数指定从标准输入读取内容,对应配置片段如下[emitters] emit_via = command [command] command_format = "gotify push -" stdin_format = "{body}"
- 方案1(完全匹配你的预期调用格式,推荐):直接通过命令参数传递正文,对应配置片段如下
配置修改完成后,可以直接手动执行
dnf automatic命令测试推送是否正常,无需等待定时器触发。
修改dnf-automatic.timer运行频率
dnf-automatic的定时触发依赖systemd timer单元,不要直接修改/usr/lib/systemd/system/路径下的原生单元文件,否则后续系统更新会覆盖自定义配置,按以下步骤操作即可:
- 将原生timer单元文件复制到systemd本地配置目录,做自定义覆盖:
cp /usr/lib/systemd/system/dnf-automatic.timer /etc/systemd/system/ - 编辑
/etc/systemd/system/dnf-automatic.timer文件,找到[Timer]配置段,默认配置通常为每日随机延迟1小时内触发:
你可以根据排查需求修改[Timer] OnCalendar=daily RandomizedDelaySec=60m Persistent=trueOnCalendar参数调整触发频率,常用配置示例:- 排查测试用,每10分钟触发一次:
OnCalendar=*:0/10 - 每小时触发一次:
OnCalendar=hourly - 固定每日凌晨2点整触发(排查时可临时把
RandomizedDelaySec设为0取消随机延迟,方便核对触发时机):OnCalendar=02:00:00
- 排查测试用,每10分钟触发一次:
- 配置修改完成后,重新加载systemd配置并重启timer单元使规则生效:
systemctl daemon-reload systemctl restart dnf-automatic.timer - 执行以下命令可以验证配置是否生效,查看定时器下一次触发时间:
systemctl list-timers dnf-automatic.timer
排查工作完成后记得把触发频率改回合理值,避免过于频繁的更新检查占用系统资源。
内容的提问来源于stack exchange,提问作者user19292461
相关产品推荐
相关产品推荐

