分區規劃不足、日志暴增、臨時文件堆積均可導致磁盤滿,引發服務掛起。以 `/home` 滿為例,提供十招「軟」辦法,無需加盤重裝即可緩解。
ls -lR /home > files_new.txt
diff files_old.txt files_new.txt
# 識別高增長目錄/文件,對冷數據壓縮存檔
df -i /home
# inode 充足 → 大文件佔用;inode 耗盡 → 海量小文件
du -hs /home # 總佔用
du /home | awk '$1 > 2000' # 超過 1000MB 的目錄 (單位 KB)
find /home -size +2000k # 超過 2MB 文件
touch -t 08190800 test # 基準時間戳
find /home -newer test -print # 比基準新的文件
find / -name core | xargs rm -rf # 核心轉儲
rm -rf /var/log/* # 歷史日志 (確認無審計需求)
ln -s /home /usr/home # 將滿分區目錄鏈接到有空間分區
結合 `lsof`、`pidstat`、`iotop` 分析哪個進程在瘋狂寫入,調整其配置或輪轉策略。
fsck -y /home # 單用戶模式下執行
釋放被刪除文件佔用的空間(見上篇「幽靈句柄」)、重置臨時文件系統、清理掛起進程。
cd /
du -h --max-depth=1 | grep G | sort -n
# 進入最大目錄繼續遞歸,無 G 則 grep M