Linux系统清理秘籍:多维度释放磁盘空间
在Linux系统中,定期清理无用文件是保持系统高效运行的关键。以下从缓存清理、日志管理、软件包优化、大文件排查、启动项控制、磁盘分析工具六大维度,总结一套完整的清理方案,帮助你最大化释放磁盘空间。
系统缓存(页面缓存、目录项缓存、inode缓存)虽能提升文件操作性能,但长期积累会占用大量空间。通过以下命令可安全清理:
sync(将未写入磁盘的数据同步到磁盘)+ echo 3 > /proc/sys/vm/drop_caches(清除页面缓存、目录项缓存、inode缓存)。sync; echo 2 > /proc/sys/vm/drop_caches(适用于文件查找频繁但内存充足的场景)。sync; echo 1 > /proc/sys/vm/drop_caches(针对内核级缓存,如文件描述符、inode等)。日志文件(如/var/log/目录下的*.log、journalctl日志)会随时间增长占用大量空间,需定期清理:
journalctl --vacuum-time 7d(保留最近7天的日志),或journalctl --vacuum-size 100M(限制日志总大小为100MB)。rm -rf /var/log/*.log.*(删除所有带.gz、.1等后缀的压缩旧日志),或使用find命令查找30天前的日志:find /var/log/ -type f -mtime +30 -exec rm -f {} \;。/etc/logrotate.conf,设置日志轮换周期(如每日、每周)和保留数量,避免日志无限增长。软件包缓存(如APT、YUM的下载缓存)和旧内核版本是磁盘空间的“隐形杀手”:
sudo apt-get clean(清除所有下载的软件包),sudo apt-get autoclean(清除旧版本的软件包),sudo apt-get autoremove(删除不再需要的依赖包)。sudo yum clean all(清除所有缓存),sudo yum autoremove(删除无用依赖)。dpkg --list | grep linux-image(Debian/Ubuntu)或rpm -q kernel(CentOS/RHEL)。sudo apt-get remove linux-image-<旧版本号>(Debian/Ubuntu)或sudo yum remove kernel-<旧版本号>(CentOS/RHEL)。通过以下命令快速找出占用空间大的文件或目录,针对性清理:
du -sh /path/to/dir | sort -rh | head -10(du统计目录大小,sort -rh按人类可读格式排序,head -10取前10)。sudo find / -type f -size +100M -exec ls -lh {} \;(find命令查找指定大小的文件,-exec用于执行后续操作,如ls -lh查看详情)。ncdu工具(sudo apt-get install ncdu),扫描目录后可直观查看文件大小,按d键删除。不必要的启动项不仅会增加系统启动时间,还可能占用磁盘空间(如残留的服务文件):
systemctl list-unit-files --type=service | grep enabled(查看当前启用的服务)。sudo systemctl disable <服务名>(如sudo systemctl disable bluetooth禁用蓝牙服务),停止服务:sudo systemctl stop <服务名>。find /etc/systemd/system -name "*.service" -exec rm -f {} \;(谨慎操作,确认服务已禁用后再删除)。借助工具可更直观、高效地清理磁盘,尤其适合新手:
sudo apt-get install bleachbit,支持清理缓存、临时文件、日志、浏览器缓存等,可选择清理范围并预览删除内容。sudo apt-get install ncdu,扫描目录后以树形结构显示文件大小,按Enter键进入目录,按d键删除。sudo add-apt-repository ppa:oguzhaninan/stacer && sudo apt update && sudo apt install stacer,提供磁盘使用分析、进程管理、启动项控制等功能,界面友好。注意事项:
/home目录、数据库文件),避免误删。