var文件目录使用率超过百分之95
主机var文件目录使用率超过百分之95
一、问题背景
主机 /var 目录使用率超过95%,需紧急清理以释放空间。
- 关键命令与输出:
1
2
3df -h /var
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-lv_var 20G 20G 983M 96% /var- 结论:
/var目录所在逻辑卷已接近满载(96%),需立即清理。
- 结论:
二、定位大文件/目录
进入 /var 目录并分析占用:
1 | cd /var |
- 作用:
du -sm *:统计当前目录下所有子目录/文件的大小(以MB为单位)。2>/dev/null:忽略无权限访问的目录报错。sort -rn:按占用空间降序排序。head:显示前10大占用项。
- 输出关键信息:
1
2
39740 account # 占用9.7GB
9110 adm # 占用9.1GB
8858 log # 占用8.8GB - 结论:
account和log是主要占用目录,需优先清理。
三、清理 /var/log 目录
1.进入 /var/log 并分析文件
1 | cd /var/log |
- 输出关键信息:
1 | 4134 secure # 4.1GB |
1.1 /var/log/secure 文件
/var/log/secure 是 Linux 系统中记录安全相关信息的日志文件,主要用于存储身份验证和授权相关的日志,如用户登录、sudo 使用、远程登录等。它帮助系统管理员监控系统的安全状态。
主要内容
- 用户登录:记录本地和远程登录的成功与失败。
sudo使用:记录用户通过sudo执行的命令。- 远程登录:记录通过 SSH 等工具的远程登录情况。
- 认证失败:记录失败的登录尝试,帮助识别潜在攻击。
1.2 /var/log/messages 文件
/var/log/messages 是 Linux 系统中一个重要的系统日志文件,用于记录内核、系统服务和其他应用程序的通用消息。它帮助系统管理员监控系统运行状态、排查问题。
主要内容
- 内核消息:硬件检测、设备驱动加载等。
- 系统服务日志:启动、停止、错误等信息。
- 应用程序日志:部分应用程序的日志。
- 系统事件:如网络连接、文件系统挂载等。
/var/log/messages-20250315 文件是 /var/log/messages 日志文件的一个归档版本。通常,这个文件包含了在 2025年3月15日(根据文件名中的日期部分”20250315”可以推断)这一天及其之前记录的系统消息和事件信息。Linux 系统通过一种称为日志轮转(log rotation)的机制来管理日志文件,以防止日志文件无限增长占用过多磁盘空间。
2.置空secure文件:
1 | > secure # 清空文件内容(保留文件句柄,避免服务中断) |
3.删除两个月前的messages日志:
1 | rm -f messages-2024* # 删除2024年的旧日志 |
四、清理 /var/account 目录
在 Linux 中,/var/account 目录用于存放与进程账户统计相关的数据,主要用于系统管理员跟踪和审计用户在系统上的活动。这个目录通常由 acct(进程账户)或者 psacct(进程统计)软件包管理。
1.pacct文件的作用
pacct 文件(/var/account/pacct)是进程账户记录文件,它详细记录了系统上运行的每个进程的信息,包括:
- 用户运行的命令
- 进程启动和结束的时间
- 进程消耗的 CPU 时间
- 进程的 UID(用户 ID)和 GID(组 ID)
- 进程的退出状态
该文件主要由 acct 或 psacct 守护进程自动生成并更新。
2.进入 /var/account 并分析文件
1 | cd /var/account |
- 输出关键信息:
1
21490 pacct # 1.4GB(当前进程记账文件)
107 pacct-2025**** # 压缩后的旧记账文件(每个约100MB) - 清理操作:
1
2
3rm -f pacct-2024* # 删除2024年的旧文件
rm -f pacct-202501* # 删除2025年1月的旧文件
rm -f pacct-202502* # 删除2025年2月的旧文件
五、清理结果验证
验证命令:
1 | df -h /var |
- 结论:清理后
/var使用率从 96% 降至 **66%**,空间释放成功。
六、关键命令解释
| 命令/操作 | 作用说明 |
|---|---|
df -h /var |
查看 /var 目录所在文件系统的磁盘使用情况(-h 表示人类可读格式)。 |
du -sm * |
统计当前目录下所有子目录/文件的大小(-s 汇总总大小,-m 以MB为单位)。 |
> secure |
清空 secure 文件内容(保留文件句柄,避免服务重启)。 |
rm -f messages-2024* |
强制删除匹配文件名模式的旧日志文件(-f 忽略不存在的文件)。 |
sort -rn |
按数值逆序排序(-r 降序,-n 按数值比较)。 |
七、总结与建议
问题根源:
- 日志文件未轮转:
secure和messages未配置自动切割与压缩,导致单文件过大。 - 旧文件未清理:历史日志(如
pacct-*)未定期删除,长期占用空间。
优化建议:
配置日志轮转:
- 使用
logrotate工具定期切割、压缩日志文件(如/var/log/secure)。 - 示例配置:
1
2
3
4
5
6
7/var/log/secure {
daily
rotate 30
compress
missingok
notifempty
}
- 使用
定期清理旧文件:
- 通过 cron 任务自动删除超过指定时间的文件(如保留最近3个月):
1
0 0 * * * find /var/account -name "pacct-*" -mtime +90 -exec rm -f {} \;
- 通过 cron 任务自动删除超过指定时间的文件(如保留最近3个月):
监控磁盘使用率:
- 部署监控工具(如 Prometheus + Grafana)实时报警磁盘使用率阈值(如 >80%)。
扩容存储(可选):
- 若业务需求增长,可扩展
/var所在逻辑卷(LVM)的容量。
- 若业务需求增长,可扩展
风险提示:
- 直接删除日志文件前,需确认文件是否被进程占用(如
lsof | grep secure)。 pacct文件为进程记账记录,删除后可能导致审计信息丢失,建议备份重要数据。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 RHCloudOps博客!
评论








