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命令限制日志總大?。ㄈ绫A?00MB),自動刪除舊日志: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命令查詢或搜索確認。