当linux系统根分区使用率达99%–100%时,必须立即执行组合操作:先用df -ht | grep -v tmpfs和du -xh --max-depth=1 / | sort -hr | head -10精准定位空间占用源;再针对性清理systemd日志(journalctl --vacuum-size=200m)、docker资源(docker system prune -a -f --volumes)、yum缓存与旧内核、临时目录及宝塔插件缓存;若为lvm环境,通过lvextend和xfs_growfs或resize2fs在线扩容;非lvm则新增硬盘挂载至/var并同步数据。

当你在终端输入df -h看到根分区Use%显示99%甚至100%,【/var/log/journal、/var/lib/docker、/tmp目录正疯狂吞噬空间】,系统开始拒绝写入新日志、无法启动服务、连vim都打不开时,必须立刻执行清理与扩容组合操作——这不是可选项,而是维持服务存活的强制动作。
第一步:精准定位空间杀手
先别删任何东西。执行以下命令,两步锁定罪魁祸首:
df -hT | grep -v tmpfs → 看清哪个挂载点爆满(通常是/或/var);
du -xh --max-depth=1 / | sort -hr | head -10 → 找出根下前10个最大子目录;
若输出中/var/log/journal或/var/lib/docker排进前三,直接跳到对应清理章节;若/tmp或/var/tmp异常庞大,说明有程序未清理临时文件,需立即处理。
紧急清理:五类高危目录速删方案
方法一:systemd日志瘦身(释放500MB–5GB)
sudo journalctl --vacuum-size=200M → 强制保留最近200MB日志,其余全部清除;
sudo journalctl --vacuum-time=7d → 改用时间策略,只留7天内日志;
注意:【journalctl --vacuum-* 操作不可逆,删除后无法恢复】,但生产环境极少需要查30天前的systemd日志。
方法二:Docker镜像与卷清理(释放数GB最有效)
docker system prune -a -f --volumes → 一键删除所有未使用镜像、容器、网络和卷;
这一步操作起来很简单,直接敲回车就行,但会清空所有docker volume数据,请确认无重要数据库卷再执行。
方法三:YUM缓存与旧内核清除
sudo dnf clean all || sudo yum clean all → 清空软件包元数据与下载缓存;
sudo package-cleanup --oldkernels --count=2 → 仅保留当前运行内核+1个最新备份,其余全删;
方法四:/tmp与/var/tmp暴力清空
sudo rm -rf /tmp/* /var/tmp/* → 彻底清空临时目录;
系统重启后这些目录会自动重建,无需担心破坏结构。
方法五:宝塔面板专属清理(若已安装)
进入/www/server/panel/plugin/ → 删除logs_clean插件缓存;
执行cd /www && du -sh * | sort -hr | head -5 → 定位/www/Recycle_bin或/www/backup中的冗余文件并手动rm -rf。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
LVM在线扩容:给根分区“打补丁”
适用于根分区使用LVM管理(CentOS 7/8默认配置),无需关机,全程在线操作。
第一步:确认LVM结构
sudo lvs → 查看逻辑卷名(如centos-root);
sudo vgs → 查看卷组剩余空间(若Free PE / Size为0,需先添加物理磁盘);
第二步:扩展逻辑卷(假设需加10G)
sudo lvextend -L +10G /dev/mapper/centos-root → 向逻辑卷追加空间;
第三步:扩展文件系统
若为XFS(CentOS 7默认):sudo xfs_growfs /;
若为ext4:sudo resize2fs /dev/mapper/centos-root;
第四步:验证结果
df -h / → Use%应明显下降,Available值增加对应大小。
非LVM环境扩容:新增硬盘挂载到/var
当系统未启用LVM,且df -h显示/var分区单独占满时,最安全的做法是挂载新硬盘到/var子目录,而非冒险重分区。
插入新硬盘后执行:
sudo lsblk → 确认新设备名(如/dev/sdb);
sudo fdisk /dev/sdb → 输入n→p→1→Enter→Enter→w创建单主分区;
sudo mkfs.xfs /dev/sdb1 → 格式化为XFS(与根文件系统保持一致);
sudo mkdir /var_new && sudo mount /dev/sdb1 /var_new → 临时挂载;
sudo rsync -avHAXx /var/ /var_new/ → 同步原/var全部内容(耗时较长,勿中断);
sudo umount /var_new && sudo mount /dev/sdb1 /var → 卸载后重新挂载到/var;
echo "/dev/sdb1 /var xfs defaults 0 0" | sudo tee -a /etc/fstab → 写入开机自动挂载。










