一、清理不必要的文件与缓存
清理系统中的临时文件、缓存文件、旧日志及无用软件包是释放磁盘空间的基础操作。
/tmp 和 /var/tmp 目录下的文件多为临时使用,可直接删除(操作前建议确认无重要进程占用):sudo rm -rf /tmp/* /var/tmp/*
sudo yum clean all # CentOS 7及以下
sudo dnf clean all # CentOS 8及以上
sudo package-cleanup --oldkernels --count=1 # 删除除最新1个外的所有旧内核
/var/cache/yum或/var/cache/dnf):sudo rm -rf /var/cache/yum/* /var/cache/dnf/*
~/.cache):rm -rf ~/.cache/*
这些操作可快速释放1-5GB空间(视系统使用情况而定)。
二、使用磁盘空间分析工具定位大文件
通过工具可视化分析磁盘使用情况,快速定位占用空间大的目录或文件,针对性清理。
sudo yum install ncdu -y # 安装
sudo ncdu / # 分析根目录
sudo yum install baobab -y # 安装
baobab # 启动
通过工具可快速找到/var/log(日志)、/home(用户文件)、/opt(第三方软件)等目录中的大文件。
三、优化日志文件管理
日志文件(尤其是/var/log目录)可能随时间增长占用大量空间,需定期清理或轮转。
.log文件(保留近期日志):sudo find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
sudo systemctl enable logrotate && sudo systemctl start logrotate # 确保服务运行
messages、syslog等大型日志文件:sudo truncate -s 0 /var/log/messages # 清空文件内容(保留文件)
日志管理可有效防止/var/log目录占满磁盘。
四、调整分区与使用LVM动态扩展
若磁盘有未分配空间或需动态调整分区大小,可通过分区工具或LVM实现。
sudo fdisk -l(确认未分配空间);sudo fdisk /dev/sdX(替换为目标磁盘,如sda);n(新建)、d(删除)、w(保存)命令;sudo mkfs.ext4 /dev/sdXY(替换为目标分区,如sda3)。sudo pvcreate /dev/sdXY;sudo vgextend centos /dev/sdXY(centos为卷组名,可通过vgdisplay查看);sudo lvextend -l +100%FREE /dev/centos/root(扩展至剩余所有空间);sudo xfs_growfs /dev/centos/root(针对XFS文件系统)或sudo resize2fs /dev/centos/root(针对ext4)。五、使用高效文件系统与压缩技术
选择合适的文件系统并压缩不常用文件,可提升存储效率。
ext4:兼容性好,适合大多数场景(默认文件系统);xfs:支持大文件(>16TB)和高性能,适合数据库、视频存储等场景;btrfs:支持快照、数据去重(实验性功能,适合高级用户)。noatime选项,减少不必要的磁盘写操作(修改/etc/fstab文件,将defaults改为defaults,noatime)。tar命令将不常用文件压缩归档(如tar -czvf archive.tar.gz /path/to/directory),节省空间。六、其他优化技巧
~/.local/share/Trash):sudo rm -rf /root/.local/share/Trash/* # root用户
rm -rf ~/.local/share/Trash/* # 普通用户
lsof命令查找被删除但仍被进程占用的文件(占用空间但不可见),重启对应进程释放空间:sudo lsof | grep deleted # 查找孤立文件
sudo systemctl restart <进程名> # 重启进程(如apache、mysql)
cups打印服务、avahi-daemon),减少资源占用:sudo systemctl stop cups && sudo systemctl disable cups # 示例:关闭cups服务
这些技巧可进一步优化磁盘空间使用,提升系统性能。