df -h 顯示某分區 (如 /home、/var、/) 使用率 100%,導致服務崩潰、無法寫入日志、資料庫拒絕連接、SSH 登錄失敗。切勿盲目刪除,先定性再處置。
ls -lR /home > /tmp/files_$(date +%F).txt
diff /tmp/files_2024-01-15.txt /tmp/files_2024-01-16.txt | grep "^>" # 新增/增大文件
# 長期建議:部署 Prometheus node_exporter + Grafana 磁盤使用率儀表盤,設置告警閾值 80%
df -i /home
# Inode 用盡 (IUse% 100%):海量小文件 (郵件隊列、緩存、會話文件、PHP session)
# 空間用盡:大文件 (日志、備份、媒體、數據庫、core dump)
du -h --max-depth=2 /home | sort -hr | head -20
# 或人類可讀 + 排序
du -x /home | sort -rn | head -20 # -x 不跨文件系統,速度更快
find /home -type f -size +100M -printf "%s %p\n" | sort -rn | head -20
# 顯示大小(字節) + 路徑,按大小降序
# 最近 24 小時修改/創建
find /home -type f -mtime -1 -ls
# 精確時間範圍
touch -t 202401150800 /tmp/start
touch -t 202401160800 /tmp/end
find /home -type f -newer /tmp/start ! -newer /tmp/end -ls
# core dump (確認已分析或無需分析)
find / -xdev -name "core*" -type f -mtime +7 -delete
# 郵件隊列積壓 (postfix/exim)
mailq | tail -20
postsuper -d ALL # 謹慎!僅確認全為垃圾郵件時
# journal 日志 (systemd)
journalctl --vacuum-size=500M
journalctl --vacuum-time=14d
# /var/log 舊日志 (logrotate 未生效時)
find /var/log -type f -name "*.gz" -mtime +30 -delete
find /var/log -type f -name "*.[0-9]" -mtime +7 -delete
# 包管理器緩存
apt clean # Debian/Ubuntu
dnf clean all # Fedora/RHEL
zypper clean -a # openSUSE
pacman -Sc # Arch
# 例:將 /home/user/large_data 遷移到 /data (另一分區有空間)
mv /home/user/large_data /data/
ln -s /data/large_data /home/user/large_data
# 或 bind mount (更透明,不影響路徑解析)
mount --bind /data/large_data /home/user/large_data
# 永久生效寫入 /etc/fstab
/data/large_data /home/user/large_data none bind 0 0
lsof -nP | grep deleted | awk '{print $1, $2, $9}' | sort -u
# 輸出:進程名 PID 文件路徑 (deleted)
# 解決:重啟該進程 (systemctl restart xxx) 或發送 SIGUSR1 觸發日志輪轉
# 必須在卸載或只讀掛載下執行
umount /home
fsck -y /dev/mapper/vg-home # ext4/xfs 用 xfs_repair
# 注意:XFS 無 fsck,僅 xfs_repair -n 預檢,-L 強制修復 (需卸載)
reboot
# 重啟前確保關鍵服務已備份、數據庫正常關閉
/ 50-100G、/var 獨立 (日志/數據庫/郵件)、/home 獨立、/tmp 掛載 tmpfs (限制大小)。/etc/logrotate.d/ 強制 daily、compress、maxage 30、missingok、notifempty。disk_usage > 80% 觸發釘釘/企業微信/郵件告警。quota 限制用戶/項目最大空間/文件數。du/find/lsof deleted 生成報表。磁盤滿載 90% 以上由「日志失控、備份遺留、緩存無清理、幽靈文件」引起。掌握 du/find/lsof/journalctl/bind mount 五大核心工具,配合自動化巡檢與分區規劃,將「滿盤危機」轉化為常規運維動作。