温馨提示×

Debian日志中的系统更新记录如何查看

小樊
47
2025-11-16 16:08:05
栏目: 智能运维

查看 Debian 系统更新记录

一 核心日志文件与用途

  • /var/log/dpkg.log:记录所有通过 dpkg 的包管理操作(如安装、升级、卸载),字段包含日期时间、动作、包名与版本,适合精确追溯某个包的变更。
  • /var/log/apt/history.log:记录 APT 的高层操作(如 apt-get/apt upgrade),包含操作时间、执行的命令、涉及包列表及变更摘要,便于按“一次更新会话”查看。
  • 说明:Debian 不使用 YUM(YUM 属于 RHEL/CentOS/Fedora 系列),请使用 APT/dpkg 相关日志与工具。

二 常用命令速查

  • 查看最近一段时间的 APT 更新会话
    • 查看全部:cat /var/log/apt/history.log
    • 查看最近一次:tail -n 1 /var/log/apt/history.log
  • 按时间筛选 APT 记录
    • 例如本月:grep "$(date +%Y-%m)" /var/log/apt/history.log
  • 查看 dpkg 安装/升级/卸载明细
    • 全部安装相关:cat /var/log/dpkg.log | grep " install"
    • 仅提取“包名 版本”:cat /var/log/dpkg.log | grep " install" | awk '{print $5, $6}'
  • 查看某个具体包的变更历史(上游变更说明)
    • apt changelog <package>
    • 或:apt-get changelog <package>
  • 查看已安装包在本地的变更说明(Debian 打包变更)
    • zless /usr/share/doc/<package>/changelog.Debian.gz
    • 若无 Debian 变更日志,可查看:zless /usr/share/doc/<package>/changelog.gz
  • 图形界面方式
    • 安装并使用 synapticsudo apt-get install synaptic,在包详情页点击 Get Changelog 查看。

三 按时间范围定位更新

  • 使用 journalctl 按时间过滤系统日志(可辅助定位更新相关的系统事件,如服务重启等)
    • 查看本次启动日志:journalctl -b
    • 指定时间范围:journalctl --since "2025-11-01" --until "2025-11-16"
    • 查看某服务日志:journalctl -u <service-name>
  • 提示:APT/dpkg 的历史记录以文件形式为主;若日志轮转后旧文件被压缩,可用 zcat/zless 查看,例如:zless /var/log/apt/history.log.1.gz

四 实用组合示例

  • 统计本月升级了哪些包(基于 APT 会话)
    • grep "$(date +%Y-%m)" /var/log/apt/history.log | grep -i "upgrade" | sed 's/Commandline: apt\(get\)\? //' | sort -u
  • 查看最近一次升级会话中具体包的版本变化(结合 APT 与 dpkg)
    • 先取最近一次 APT 会话的包列表,再用 dpkg 查询对应版本:
      • last_upg=$(tail -n 50 /var/log/apt/history.log | grep -m1 "Upgrade:" | sed 's/Upgrade: //; s/, / /g')
      • for p in $last_upg; do echo "$p: $(dpkg -l "$p" | awk 'NR==6 {print $3}')"; done

0