一、查看磁盘空间使用情况
在进行磁盘清理前,需先明确空间占用情况。常用命令如下:
df -h:查看各文件系统的磁盘空间使用情况(包括总大小、已用空间、可用空间及挂载点),-h参数以人类可读格式(GB/MB)显示。df -i:查看磁盘inode使用情况(若inode耗尽,即使磁盘空间充足也无法创建新文件)。du -sh /path/to/directory:统计指定目录的总大小(如du -sh /var/log查看日志目录大小);du -sh /path/to/dir | sort -rh | head -20:找出占用空间最大的前20个目录。二、清理缓存文件
缓存文件会占用大量磁盘空间,定期清理可释放空间:
sudo yum clean all # 清理YUM缓存(兼容CentOS Stream 8)
sudo dnf clean all # 清理DNF缓存(推荐,适用于CentOS 8及以上)
/tmp目录用于存储临时文件,重启系统后会自动清空,但可手动清理:sudo rm -rf /tmp/* # 删除/tmp目录下所有临时文件(谨慎操作,避免删除正在使用的文件)
sudo sync # 将内存中的数据同步到磁盘
sudo echo 3 > /proc/sys/vm/drop_caches # 释放页缓存、目录项和inode缓存
三、清理日志文件
日志文件(如/var/log目录下的文件)会随时间增长占用大量空间,需定期管理:
du -sh /var/log # 统计/var/log目录总大小
find命令查找并删除超过一定时间(如30天)或大小的日志文件:find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \; # 删除30天前的.log文件
find /var/log -type f -name "*.log" -size +50M -exec truncate -s 0 {} \; # 清空超过50MB的.log文件(保留文件结构)
/etc/logrotate.conf(全局配置)或/etc/logrotate.d/下的子配置(如/etc/logrotate.d/syslog),调整轮转周期(如weekly每周)、保留份数(如rotate 5保留5份)及压缩选项(如compress)。四、删除不必要的文件和目录
/boot分区空间,可使用package-cleanup工具删除(保留最新的2个内核):sudo package-cleanup --oldkernels --count=2 # 删除除最新2个内核外的所有旧内核
sudo package-cleanup --quiet --leaves --exclude-bin | xargs sudo yum remove -y # 删除无用的依赖包
sudo rm -rf /home/user/old_backups/* # 删除用户目录下的旧备份文件夹
五、使用工具辅助清理
sudo dnf install bleachbit # 安装bleachbit
bleachbit # 启动图形化界面,选择清理项目(如“系统临时文件”“YUM缓存”)
六、扩展磁盘空间(可选)
若清理后仍空间不足,可考虑扩展磁盘:
sudo pvresize /dev/sdXY(/dev/sdXY为物理卷设备,如/dev/sda2)。sudo vgextend vgName /dev/sdXY(vgName为卷组名称,可通过vgdisplay查看)。sudo lvextend -L +10G /dev/vgName/lvName(+10G表示增加10GB,可根据需求调整)。sudo xfs_growfs /dev/vgName/lvName(XFS文件系统)或sudo resize2fs /dev/vgName/lvName(ext4文件系统)。fdisk /dev/sdX创建新分区(/dev/sdX为磁盘设备,如/dev/sdb)。sudo mkfs.ext4 /dev/sdX1(/dev/sdX1为新分区)。sudo mkdir /mnt/newdisk(创建挂载点),sudo mount /dev/sdX1 /mnt/newdisk(临时挂载)。/etc/fstab文件,添加/dev/sdX1 /mnt/newdisk ext4 defaults 0 0(重启后自动挂载)。注意事项
/home、/etc目录),避免误操作导致数据丢失。virt-manager或virsh命令扩展虚拟磁盘(需先扩展虚拟机磁盘文件,再扩展系统分区)。