Linux清理秘籍:释放磁盘空间的实用步骤
在Linux系统使用过程中,磁盘空间不足是常见问题,可能导致程序无法运行、日志无法写入甚至系统崩溃。以下是一套系统化的清理方案,帮助你高效释放磁盘空间。
清理前需先定位高占用分区或inode耗尽问题,避免盲目操作。
df -h命令查看所有挂载分区的使用情况,重点关注“Use%”列(使用率超过90%的分区需优先处理),例如根分区“/”或“/home”。df -i查看各分区inode使用率,确保未达到100%。du -sh /*查看根目录下各子目录的磁盘占用,找出占用最高的目录(如/var、/home);du -sh /var/*进一步深入排查;find / -type f -size +500M 2>/dev/null查找系统中大于500MB的单个文件(如旧虚拟机镜像、安装包),便于手动处理。系统缓存(如APT/YUM包缓存)和临时文件(/tmp、/var/tmp)是快速释放空间的关键。
sudo apt clean删除已下载的包文件(保留索引,不影响后续安装);若需彻底清理索引,可加autoclean(sudo apt autoclean)。sudo yum clean all(YUM)或sudo dnf clean all(DNF)删除所有缓存文件。sudo rm -rf /tmp/*清空/tmp目录(系统临时文件);/var/tmp目录(长期临时文件)可根据需要清理(避免删除正在使用的文件)。已安装但不再使用的软件包及其依赖会占用大量空间,需及时清理。
sudo apt autoremove --purge:卸载不再需要的依赖包,并清除配置文件;sudo apt autoclean:清理旧版本的包缓存(保留最新版本)。sudo yum autoremove(YUM)或sudo dnf autoremove(DNF):自动卸载无用依赖。日志文件(如/var/log目录下的syslog、auth.log)随时间增长会占用大量空间,需定期清理。
journalctl命令限制日志总大小(如保留200MB),自动删除旧日志:sudo journalctl --vacuum-size=200M。sudo journalctl --vacuum-time=7d;syslog):sudo truncate -s 0 /var/log/syslog(不会删除文件,仅清空内容)。find命令查找并删除超过30天的.log文件:find /var/log -type f -name "*.log" -mtime +30 -exec rm {} \;。Docker容器、镜像、卷会占用大量磁盘空间,需定期清理无用数据。
docker system prune -a命令:删除所有未使用的容器、网络、悬空镜像(未被任何容器引用的镜像)和构建缓存(需确认是否删除重要数据)。图形界面环境下,删除的文件会移动到回收站(~/.local/share/Trash),需手动清空以释放空间。
sudo rm -rf ~/.local/share/Trash/*删除回收站中的所有文件。BleachBit是一款跨平台的系统清理工具,可自动识别并清理临时文件、缓存、日志、浏览器缓存等无用数据。
sudo apt install bleachbit(Debian/Ubuntu)或sudo yum install bleachbit(RHEL/CentOS)。bleachbit-gui),选择预定义清理任务(如“系统缓存”“临时文件”)或自定义清理选项,点击“清理”即可。ncdu(NCurses Disk Usage)是基于文本的磁盘使用分析工具,提供交互式界面,帮助快速定位大文件和目录。
sudo apt install ncdu(Debian/Ubuntu)或sudo yum install ncdu(RHEL/CentOS)。ncdu /扫描根目录,界面会显示各目录的大小(按大小排序),通过方向键导航,按d键删除选中文件/目录。/etc目录下的配置文件、/bin//sbin目录下的系统命令),若不确定文件用途,可通过man命令查询或搜索确认。