Linux系统运行一段时间后,很容易出现磁盘空间不足导致服务无法启动、程序运行报错的情况,也可能因为前期分区规划不合理,出现部分磁盘分区空间闲置过大的资源浪费问题。掌握磁盘空间的排查与调整方法,是Linux运维的基础技能。

磁盘空间状态排查
要解决磁盘空间相关问题,首先需要明确当前磁盘的使用情况,常用的排查命令有两个:
df命令查看整体磁盘使用情况
df命令用于显示文件系统的磁盘空间使用情况,加上-h参数可以以人类易读的单位(G、M)展示结果:
# 查看所有挂载点的磁盘使用情况 df -h
执行后会输出每个挂载点的总容量、已用容量、可用容量以及使用率,快速定位使用率过高的分区。
du命令定位大文件
当发现某个分区使用率过高时,可以用du命令逐层查找占用空间较大的文件或目录:
# 查看当前目录下各子目录的磁盘占用,按大小排序 du -h --max-depth=1 | sort -hr
该命令会展示当前目录下一级子目录的大小,从大到小排序,方便快速找到占用空间多的目录,再逐级深入排查具体文件。
解决磁盘空间不足问题
清理冗余文件
常见的可清理文件包括系统日志、软件缓存、临时文件等:
- 清理系统日志:/var/log目录下的日志文件如果过大,可以删除旧的日志,或者配置日志轮转策略
- 清理包管理器缓存:CentOS系统可以执行
yum clean all,Ubuntu系统可以执行apt clean清理安装包缓存 - 删除临时文件:/tmp目录下的长期未使用的临时文件可以直接删除
删除无用文件或迁移大文件
如果排查到有大文件不需要使用,可以直接删除:
# 删除指定大文件,注意确认文件无用后再操作 rm -f /data/large_file.bak
如果文件还有用但当前分区空间不足,可以将文件迁移到其他空间充足的分区,再创建软链接到原路径:
# 迁移文件到新分区 mv /data/large_file /new_disk/data/ # 创建软链接 ln -s /new_disk/data/large_file /data/large_file
解决磁盘空间分配过大问题
调整LVM分区大小
如果系统使用了LVM逻辑卷管理,可以直接调整分区大小,将过大的分区空间缩减后分配给其他分区:
# 先卸载要调整的分区,假设分区挂载在/data umount /data # 检查文件系统 e2fsck -f /dev/vg_data/lv_data # 缩减文件系统大小到50G resize2fs /dev/vg_data/lv_data 50G # 缩减逻辑卷大小到50G lvreduce -L 50G /dev/vg_data/lv_data # 重新挂载分区 mount /dev/vg_data/lv_data /data
缩减出来的空间可以再创建新的逻辑卷分配给其他挂载点使用。
重新规划分区
如果系统没有使用LVM,且磁盘还有未分配的空间,可以通过fdisk或者parted工具重新划分分区,将过大的分区空间拆分,分配给需要的分区。操作前一定要备份重要数据,避免分区操作导致数据丢失。
日常磁盘维护建议
为了避免频繁出现磁盘空间问题,可以做好以下日常维护:
- 定期执行磁盘使用情况检查,设置使用率告警阈值
- 合理配置日志轮转策略,避免日志文件无限制增长
- 前期规划分区时根据实际业务需求分配空间,优先使用LVM方便后续调整