一、清理不必要的文件与目录
清理系统中的临时文件、旧日志、无用软件包及缓存是释放磁盘空间的基础操作。
/tmp 和 /var/tmp 目录下的文件多为临时使用,可直接删除(确保无程序依赖)。命令:rm -rf /tmp/* /var/tmp/*。/var/log 下的 .log 文件)可能占用大量空间。可通过 truncate 命令清空文件(保留文件结构),或用 journalctl 清理 systemd 日志。示例:find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;(清空所有 .log 文件);journalctl --vacuum-size=100M(保留最近 100MB 日志)。/var/cache/yum 或 /var/cache/dnf 空间。命令:yum clean all(CentOS 7 及以下);dnf clean all(CentOS 8 及以上)。yum autoremove(或 dnf autoremove)自动删除不再被任何软件包依赖的无用包;通过 package-cleanup --oldkernels --count=2 保留最近 2 个内核版本,删除旧内核(避免内核文件占用过多空间)。lsof | grep deleted 查找已被删除但仍被进程占用的文件(显示为“deleted”状态),重启对应进程或直接终止进程以释放空间。二、使用LVM(逻辑卷管理)动态调整空间
LVM 提供灵活的磁盘空间管理能力,支持动态扩展逻辑卷,适合需要频繁调整空间的场景。
/dev/mapper/centos-root 为例):lvextend -L +10G /dev/mapper/centos-root(增加 10GB)。resize2fs,xfs 文件系统用 xfs_growfs(xfs 为 CentOS 7+ 默认文件系统)。示例:resize2fs /dev/mapper/centos-root(ext4);xfs_growfs /dev/mapper/centos-root(xfs)。三、优化磁盘分区与挂载
合理的分区方案能提升空间利用率,避免单一分区空间耗尽。
fdisk -l(查看磁盘分区详情)、lsblk(查看块设备层级)命令了解当前分区布局。fdisk(创建新分区)或 parted(调整现有分区大小)扩展分区。注意:调整分区大小前需备份数据,且 ext4/xfs 文件系统需先卸载(或使用 resize2fs/xfs_growfs 在线调整)。pvcreate /dev/sdX)、创建卷组(vgcreate vg_name /dev/sdX)、创建逻辑卷(lvcreate -L 10G -n lv_root vg_name)、格式化并挂载。四、使用磁盘分析与压缩工具
ncdu(交互式工具)快速定位占用空间大的目录/文件。安装:yum install ncdu(CentOS 7 及以下);dnf install ncdu(CentOS 8 及以上)。使用:ncdu /(扫描根目录)。tar 命令将不常用的大文件/目录压缩归档(如 tar -czvf archive.tar.gz /path/to/directory),减少占用空间。五、定期维护与监控
/etc/crontab):0 0 1 * * root /usr/bin/yum clean all && /usr/bin/find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;。df -h(查看挂载点空间使用)、du -sh /path/to/dir(查看目录大小)命令监控磁盘空间,及时发现异常。