溫馨提示×

Linux系統清理:如何釋放磁盤空間

小樊
41
2025-10-02 10:53:48
欄目: 云計算

Linux系統清理釋放磁盤空間的常用方法

1. 盤點磁盤使用狀況

在清理前,需先定位占用空間最多的分區或目錄。使用df -h命令查看各掛載點的磁盤使用詳情(如根分區/的使用率),再用du -ah --max-depth=1 | sort -rh | head -n 10命令列出當前目錄下最大的10個文件/目錄,快速識別空間占用大戶。

2. 清理包管理器緩存

包管理器(如APT、YUM)安裝軟件時會保留下載的安裝包緩存,長期積累會占用大量空間。

  • Debian/Ubuntu系統:運行sudo apt clean(清除所有緩存包)和sudo apt autoclean(僅清除舊緩存包);
  • RHEL/CentOS/Fedora系統:運行sudo dnf clean all(清除所有緩存)或sudo yum clean all(舊版本)。

3. 卸載無用軟件包及舊內核

  • 卸載無用軟件包:使用sudo apt autoremove(Debian/Ubuntu)或sudo dnf autoremove(RHEL/CentOS)自動刪除不再需要的依賴包;
  • 刪除舊內核:舊內核版本會占用空間且無需保留。
    • Debian/Ubuntu:運行dpkg --list | grep linux-image列出所有內核,再用sudo apt purge linux-image-<舊版本號>刪除;
    • RHEL/CentOS:運行rpm -q kernel列出內核,再用sudo yum remove kernel-<舊版本號>刪除。
      刪除后需運行sudo update-grub更新引導器配置。

4. 清理臨時文件與日志

  • 臨時文件:系統和用戶產生的臨時文件存儲在/tmp(重啟后自動清理)和/var/tmp(持久化臨時文件)中,運行sudo rm -rf /tmp/*sudo rm -rf /var/tmp/*安全清理;
  • 日志文件/var/log目錄下的日志文件(如*.log)會隨時間增長,可通過sudo journalctl --vacuum-time=7d保留最近7天的日志,或手動刪除舊日志(如sudo rm /var/log/*.log)。

5. 查找并刪除大文件

使用find命令批量查找并刪除大文件:

  • 查找當前目錄及子目錄下大于100MB的文件:find . -type f -size +100M;
  • 刪除大于1GB的文件:find /path/to/directory -type f -size +1G -exec rm -fv {} +(替換/path/to/directory為目標路徑)。
    操作前務必確認文件非系統關鍵文件,避免誤刪。

6. 清理Docker殘留資源

若系統運行Docker,未使用的鏡像、容器、卷會累積占用空間。運行docker system prune -a --volumes命令清理所有未使用的資源(包括鏡像、容器、卷、網絡);若僅需清理停止的容器和未使用的網絡,可運行docker container prune && docker network prune。

7. 處理已刪除但未釋放的文件

某些進程可能仍在使用已被刪除的文件(如日志文件),導致磁盤空間未釋放。通過lsof | grep deleted命令查找被刪除但仍被進程占用的文件,記下相關進程的PID,若可重啟服務則重啟對應服務;若需立即釋放空間,可終止該進程(kill -9 PID,替換為實際PID)。

8. 清理系統緩存(可選)

系統緩存(頁面緩存、目錄項緩存、inode緩存)會占用內存,但Linux內核會自動管理。若需手動清理(如調試或測試),可按以下步驟操作:

  • 同步文件系統:sync(將未寫入磁盤的緩存數據寫入磁盤);
  • 清除所有緩存:echo 3 | sudo tee /proc/sys/vm/drop_caches(清除頁面緩存、目錄項緩存、inode緩存)。
    注意:清理緩存可能導致系統暫時性能下降,建議在低峰時段操作。

注意事項

  • 操作前務必備份重要數據,避免誤刪導致數據丟失;
  • 生產環境中謹慎清理緩存,避免影響系統性能;
  • 定期執行清理任務(如每周清理臨時文件、每月清理緩存),可有效防止磁盤空間不足。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女