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目錄、數據庫文件),避免誤刪。