Linux分区磁盘清理指南
在进行磁盘清理前,需先定位占用空间大的目录或文件,常用命令如下:
df -h:查看各分区的总空间、已用空间、可用空间及使用百分比(人类可读格式),快速识别空间不足的分区。du -sh *:统计当前目录下各文件/子目录的大小(-s显示总计,-h人类可读),可结合-max-depth=1限制统计深度(如du -h --max-depth=1 /home查看/home下各子目录大小)。ncdu:交互式磁盘分析工具(需安装,如sudo apt install ncdu),以可视化界面展示目录大小,支持排序、删除文件,适合快速定位大文件。日志文件(如/var/log下的syslog、auth.log)会随时间增长占用大量空间,可通过以下命令清理:
sudo rm -rf /var/log/*.gz(删除压缩的旧日志);sudo truncate -s 0 /var/log/syslog(将syslog文件大小截断为0);logrotate:系统自带日志轮转工具,可自动压缩、删除旧日志(配置文件位于/etc/logrotate.conf)。包管理器的缓存(如apt、yum)会占用/var/cache空间,可通过以下命令清理:
sudo apt clean(删除/var/cache/apt/archives下的.deb文件);sudo yum clean all(清理YUM缓存)。/tmp目录下的临时文件(如安装程序生成的临时文件)可安全删除:
sudo find /tmp -type f -mtime +10 -exec rm -f {} \;;sudo rm -rf /tmp/*(注意:部分程序可能正在使用/tmp文件,操作前需确认)。旧内核版本会占用/boot分区空间,可通过以下命令清理:
dpkg --list | grep linux-image(Debian/Ubuntu)或rpm -qa | grep kernel(CentOS/RHEL);sudo apt remove linux-image-<version>(替换为具体版本号,保留当前使用的内核)。Linux文件系统(如ext4、XFS)本身抗碎片化能力强,但在以下场景需进行碎片整理:
使用e4defrag工具(需安装e2fsprogs):
sudo e4defrag /dev/sdXn(/dev/sdXn为目标分区,如/dev/sda1);sudo e4defrag /path/to/file。SSD无需传统碎片整理,但需定期执行fstrim命令通知硬盘哪些数据块已不再使用,以提高性能:
sudo fstrim /(/为根分区,可替换为其他挂载点);fstrim.timer(检查状态:systemctl status fstrim.timer,启动服务:systemctl start fstrim.timer)。若分区空间不足,可通过以下步骤调整分区大小(需备份数据):
sudo umount /dev/sdXn(/dev/sdXn为目标分区)。
parted:sudo parted /dev/sdX,进入交互模式后执行resizepart <分区号> <新大小>(如resizepart 1 50GB);fdisk:sudo fdisk /dev/sdX,删除旧分区(d命令),创建新分区(n命令,指定更大容量)。调整分区后,需同步调整文件系统大小:
sudo resize2fs /dev/sdXn;sudo xfs_growfs /mount/point(/mount/point为分区挂载点)。若需重新使用分区(如用于RAID、CEPH),需彻底清除分区表及文件系统信息:
使用sgdisk工具(适用于GPT分区):
sudo sgdisk --clear --zap-all /dev/sdX(/dev/sdX为磁盘设备,如/dev/sdb),清除所有分区信息。使用wipefs工具:
sudo wipefs --all /dev/sdXn(/dev/sdXn为目标分区),清除分区上的文件系统签名(如ext4、XFS)。cp -afv /source/dir /backup/dir);/etc、/boot下的文件)可能导致系统无法启动;cron定时任务(如每天检查磁盘使用率)或工具(如Netdata)实时监控磁盘空间,预防空间耗尽。