在日常的服务器运维工作中,磁盘空间管理是最基础却也是最容易被忽视的问题之一。当服务器突然报出"No space left on device"时,往往意味着服务已经受到影响。本文将介绍几个实用的磁盘空间管理命令和故障排查思路,帮助系统管理员在日常工作中更加从容应对。
磁盘空间检查基础命令
最常用的磁盘空间查看命令是 df 。这个命令可以快速显示所有挂载点的磁盘使用情况:文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
df -h
-h 参数表示以人类可读的格式显示(如 GB、MB),输出结果包含每个文件系统的总容量、已用空间、可用空间和使用百分比。文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
如果需要查看当前目录下的磁盘使用情况,可以使用 du 命令:文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
du -sh /var/log
-s 表示只显示总计,-h 同样是以人类可读格式显示。这个命令对于定位哪个目录占用了大量空间非常有用。文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
查找大文件的实用技巧
当磁盘空间紧张时,需要快速定位占用空间较大的文件。可以使用 find 命令配合 -size 参数:文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
find /var/log -type f -size +100M -exec ls -lh {} \;
这条命令会在 /var/log 目录下查找大于 100MB 的文件,并显示详细信息。根据实际情况调整路径和大小参数。文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
另一个常用的方法是使用 du 命令结合 sort 进行排序:文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
du -h /var/log | sort -rh | head -n 20
这可以列出 /var/log 目录下占用空间最大的前 20 个文件或目录。文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
日志文件管理策略
日志文件是磁盘空间的主要消耗者之一。合理配置日志轮转策略可以有效控制磁盘使用。大多数 Linux 系统使用 logrotate 工具来管理日志文件。文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
查看当前的日志轮转配置:文章源自堕落的鱼-https://www.duoluodeyu.com/2842.html
cat /etc/logrotate.conf
常见的配置参数包括:
- daily/weekly/monthly:轮转周期
- rotate N:保留 N 个归档文件
- compress:压缩归档文件
- size:按文件大小触发轮转
例如,对于 /var/log/app 目录下的日志,可以创建自定义配置 /etc/logrotate.d/myapp:
/var/log/app/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0644 root root
}
磁盘空间告警排查思路
当收到磁盘空间告警时,可以按照以下步骤进行排查:
第一步,确认告警信息。使用 df -h 查看具体哪个挂载点空间不足。有时根分区满了,但其他分区还有空间。
第二步,定位大文件或大目录。使用 du 命令逐级排查,找出占用空间最多的目录。
第三步,分析文件类型。有时空间被大量小文件占满,可以用 find 命令统计:
find /path -type f | wc -l
第四步,检查是否有被删除但仍被进程占用的文件。这种情况用 df 和 du 看到的结果会不一致:
lsof | grep deleted
这种"僵尸文件"只能通过重启占用它的进程才能真正释放空间。
第五步,制定清理策略。根据文件重要性决定是删除、归档还是迁移。对于日志文件,检查 logrotate 配置是否合理。
日常监控建议
预防胜于治疗。建议配置磁盘空间监控,在问题恶化前及时发现:
- 设置告警阈值,通常在 80% 或 85% 时触发预警
- 定期审查日志轮转策略,确保符合业务需求
- 对快速增长的数据目录建立增长趋势监控
- 制定数据保留策略,明确各类数据的保存期限
通过合理的监控和预防性维护,可以有效降低磁盘空间问题对业务的影响。











