首页/系统/Linux 运维命令速查/场景:日志断档/被清空怎么排查
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条
日志与排查40 条
systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:日志断档/被清空怎么排查

日志突然没有新内容或历史消失:依次核对 写入方(服务)、轮转(logrotate)、空间(磁盘满)、journal 配置与人为操作。

Linux 运维命令速查系统更新于 2026-10-12
场景日志文件停在某时刻或历史缺失
目标恢复日志链路并评估影响
工具链ls/lsof → logrotate status → journald → 审计

第 1 步:文件现状

第 1 步:文件现状
ls -l --time-style=long-iso /var/log/myapp/
stat /var/log/myapp/app.log
lsof /var/log/myapp/app.log     # 谁还在写这个 inode

第 2 步:轮转与空间

第 2 步:轮转与空间
cat /var/lib/logrotate/logrotate.status 2>/dev/null | tail
ls -lh /var/log/myapp/ | head
df -h /var

第 3 步:journal 侧

第 3 步:journal 侧
journalctl --disk-usage
journalctl --verify 2>&1 | tail
journalctl -u systemd-journald -n 30
先分清日志写向(journal vs 文件 vs 远端)再逐段验证;断档最常见原因其实是磁盘满或轮转后未通知应用。

易错点

  • 应用打开的是被轮转的老 inode,新文件一直空:重启/重载应用或改用 copytruncate 策略
  • 人为清空(:>)不改变 mtime 语义之外的任何线索,怀疑篡改要结合审计日志与备份比对

数据来源与参考

  • man 8 logrotate(status 文件)
  • man 1 journalctl(--disk-usage/--verify)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌