You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL pg_hba.conf配置行每日自动删除问题求助

解决pg_hba.conf配置每日被自动重置的问题

针对你在PostgreSQL 8.4.20(CentOS 6.8环境)中遇到的pg_hba.conf配置行每日13:07 GMT被删除、恢复默认的问题,我整理了以下排查和解决步骤:

一、排查隐藏的自动重置触发源

你已经排查了定时任务,但CentOS 6.8和老版本PostgreSQL可能存在其他容易忽略的自动配置机制:

  • 检查配置管理工具:排查是否有puppet、chef这类自动化配置工具在运行,它们会定期将配置文件同步回预设状态。可以通过以下命令确认:
    rpm -qa | grep puppet
    ps aux | grep puppet
    
    同理检查chef或其他同类工具的进程和安装包。
  • 深度扫描定时任务相关目录:除了常规的crontab -l,还要检查系统级定时任务目录:
    ls -la /etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/
    grep -r "pg_hba.conf" /etc/
    
    看看有没有脚本在特定时间修改这个配置文件。
  • 监控文件修改记录:用auditd临时监控pg_hba.conf的修改操作,第二天问题发生后就能定位到修改源:
    # 开启监控
    auditctl -w /var/lib/pgsql/8.4/data/pg_hba.conf -p wa
    # 第二天查看修改记录
    ausearch -f /var/lib/pgsql/8.4/data/pg_hba.conf
    
  • 检查日志文件:查看PostgreSQL日志(默认路径/var/lib/pgsql/8.4/data/pg_log/)和系统日志/var/log/messages,在13:07左右的日志中搜索pg_hba或postgresql关键词,寻找文件修改的相关记录。

二、临时锁定配置文件防止被修改

如果暂时找不到触发源,可以先通过文件属性锁定来阻止修改,确保业务正常:

# 给pg_hba.conf添加不可修改属性
chattr +i /var/lib/pgsql/8.4/data/pg_hba.conf

这个属性会禁止任何用户(包括root)修改文件,后续需要调整配置时,执行chattr -i /var/lib/pgsql/8.4/data/pg_hba.conf即可解除锁定。

三、老版本环境的特殊注意事项

你使用的PostgreSQL 8.4和CentOS 6.8均已停止官方维护,存在遗留bug或未记录的自动配置逻辑的可能性较高:

  • 排查是否有老旧的PostgreSQL管理工具(如旧版phpPgAdmin、监控脚本)在定时重置配置。
  • 若条件允许,建议备份数据后升级到受支持的PostgreSQL版本(可通过第三方源在CentOS 6.8上部署),从根源避免这类老旧版本的未知问题。

四、验证配置有效性

每次修改pg_hba.conf后,无需重启PostgreSQL,可通过以下命令重载配置:

pg_ctl reload -D /var/lib/pgsql/8.4/data/

这样能快速验证配置是否生效,减少业务中断时间。

内容的提问来源于stack exchange,提问作者emay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:29:54