首先通过以下命令明确磁盘空间的使用情况,锁定需要清理的目标:
df -h(重点关注Use%列,超过80%需警惕)。du -sh /* | sort -rh(按大小排序,快速识别占用最大的目录,如/var、/home)。find / -type f -size +100M -exec ls -lh {} \;(查找系统中大于100MB的文件,可根据实际情况调整阈值)。临时文件和缓存是“空间杀手”,优先清理无风险:
/tmp和/var/tmp目录:rm -rf /tmp/* /var/tmp/*(删除临时文件,注意:避免删除正在使用的临时文件)。yum clean all(CentOS 7及以下)或dnf clean all(CentOS 8及以上),释放软件包缓存。rm -rf /var/cache/yum/* /var/cache/dnf/*(进一步清理包管理器缓存)。日志文件长期积累易占满空间,需定期清理或轮转:
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;(删除修改时间超过30天的.log文件)。truncate -s 0 /var/log/*.log(将日志文件大小截断为0,保留文件结构)。logrotate自动管理:编辑/etc/logrotate.conf,设置日志轮转周期(如daily)、保留数量(如rotate 7)及压缩选项(如compress),或通过logrotate -f /etc/logrotate.conf强制立即轮转。减少不必要的软件安装和大文件占用:
yum remove <package_name>(如yum remove httpd)或dnf remove <package_name>(CentOS 8+),释放软件安装目录空间。rpm -q kernel(列出所有已安装内核),yum remove kernel-<旧版本号>(保留最新2个内核,避免系统崩溃)。find /home/<username> -type f -name "*.tmp" -delete(删除用户目录下的临时文件,如/home/user1)。若清理后仍空间不足,需通过扩展磁盘解决:
pvcreate /dev/sdb(/dev/sdb为新磁盘)。vgextend centos /dev/sdb(centos为卷组名,可通过vgdisplay查看)。lvextend -l +100%FREE /dev/centos/root(root为逻辑卷名,可通过lvdisplay查看)。xfs_growfs /dev/centos/root(XFS文件系统)或resize2fs /dev/centos/root(EXT4文件系统)。fdisk /dev/sdb创建新分区(如/dev/sdb1),格式化为ext4或xfs:mkfs.ext4 /dev/sdb1。mkdir /data。mount /dev/sdb1 /data,验证是否成功。/etc/fstab,添加/dev/sdb1 /data ext4 defaults 0 0,重启后生效。/home、/var等关键目录,防止误操作导致数据丢失。/boot、/etc目录下的文件,删除可能导致系统无法启动。crontab -e添加0 3 * * * /usr/bin/ncdu / > /var/log/disk_usage.log),每周自动分析磁盘使用情况,提前预警。