1. 检查磁盘使用情况,定位高占用分区/目录
在执行清理前,需先确认磁盘空间的实际使用状态,避免盲目操作。使用以下命令:
df -h:查看所有挂载分区的磁盘使用率,重点关注“Use%”列(使用率超过90%的分区需优先处理,如根分区/或/home);df -i:检查inode使用率(若达到100%,即使磁盘空间充足也无法创建新文件);du -sh /* 2>/dev/null:从根目录开始,查看各子目录的磁盘占用情况(如/var、/home、/usr等),快速定位高占用目录;find / -type f -size +100M 2>/dev/null:查找系统中大于100MB的单个文件(如大型日志、备份文件),便于针对性清理。2. 清理系统日志文件
日志文件是磁盘空间被迅速耗尽的常见原因(尤其是/var/log目录)。可通过以下方式清理:
systemd的系统):sudo journalctl --vacuum-size=200M(保留最近200MB的日志);syslog):sudo truncate -s 0 /var/log/syslog(不清除文件本身,仅清空内容);sudo find /var/log -name "*.log.*" -mtime +30 -exec rm -f {} \;(删除30天前的旧日志归档)。3. 清理软件包缓存
包管理器(如apt、yum)在安装/升级软件时会保留下载的安装包缓存,长期积累会占用大量空间:
sudo apt clean(清理/var/cache/apt/archives中的安装包);sudo apt autoremove(移除不再需要的依赖包);sudo yum clean all(清理/var/cache/yum中的缓存);sudo dnf clean all(同上,适用于较新版本);sudo package-cleanup --oldkernels --count=1(删除旧内核,保留最新1个)。4. 删除临时文件
临时文件(如/tmp、/var/tmp中的文件)通常由系统或应用程序临时创建,重启后可安全清理:
/tmp目录:sudo rm -rf /tmp/*(删除/tmp下所有文件,不包括子目录);/var/tmp目录:sudo rm -rf /var/tmp/*(清理持久化临时文件,如某些应用程序的临时数据)。5. 清理已删除但未释放的文件句柄
若进程仍占用已删除的文件(如日志文件被删除但服务仍在写入),磁盘空间不会被释放。可通过以下步骤解决:
sudo lsof | grep deleted(输出中“SIZE/OFF”列显示文件大小,“PID”列为进程ID);nginx),则sudo systemctl restart nginx;若需立即释放空间,可sudo kill -9 PID(终止进程,谨慎操作)。6. 清理Docker残留资源
若系统运行Docker,未使用的镜像、容器、卷会累积占用大量空间:
docker system prune -a --volumes(需确认,会删除所有未使用的资源);docker container prune(清理停止的容器);docker network prune(清理未使用的网络)。7. 卸载无用软件包与旧内核
sudo apt autoremove(Debian/Ubuntu,移除自动安装但不再需要的依赖);sudo yum autoremove(RHEL/CentOS,同上);dpkg --list | grep linux-image(列出所有已安装的内核);sudo apt purge linux-image-<旧版本>(删除旧内核,保留当前使用的版本);(RHEL/CentOS):rpm -q kernel(列出所有内核);sudo yum remove kernel-<旧版本>(删除旧内核)。8. 使用工具自动化清理
baobab)、GNOME Disk Utility,可直观查看磁盘使用情况并清理;bleachbit(sudo bleachbit --clean system.cache system.tmp,清理系统缓存与临时文件);stacer(图形化系统优化工具,支持清理缓存、日志等)。注意事项
/home目录、数据库文件),避免误删;logrotate(日志轮转工具),定期压缩/删除旧日志,而非手动清理。