快速定位和解決磁盤爆滿問題的五步法,建議收藏
今天分享一下磁盤空間滿了怎么排查。
磁盤空間滿的問題基本是每個運維牛馬都會遇到的,接下來我將通過5步完成排查和解決磁盤滿的問題。
第一步:哪個掛載點滿了?
df -h
輸出示例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 49G 500M 100% /
一般系統都有多個掛載點,首先找出哪個掛載點爆滿。
第二步:哪個目錄最占空間?
# 查看
sudo du -h --max-depth=1 / | sort -hr | head -n 10
參數說明:
- du:查看文件夾體積
- --max-depth=1:只看一級目錄
- sort:從大到小排序
- head:只顯示前10個
找到哪個目錄占用較多,再深入查看:
du -h --max-depth=3 /data | sort -hr | head -n 10
通常 是日志文件占據較大空間,能刪除的也只有日志,或者備份
第三步:找出最大文件
# 從上兩步定位出來,再根據大小進一步確認
find /data -type f -size +1G -exec ls -lh {} \; 2>/dev/null | sort -k5 -hr | head -n 20
從上圖可以看出有個30G的tomcat日志文件,這樣就可以清理了,這種大文件建議進行切割,然后定時清理。
第四步:查看被刪但仍占空間的文件
lsof | grep deleted
看到某個被刪的日志文件還被占用?
解決辦法:重啟對應服務即可釋放磁盤。
第五步:快速清理技巧
清理項 | 命令 |
清空日志文件 |
--》這個命令會直接清空該文件的所有內容 |
刪除7天前日志 |
|
清理 Docker |
|
清理 APT 緩存 |
|
清理 YUM 緩存 |
|
【溫馨提示】在刪除前一定要確保不影響系統運行。
總結一句話:
用 df 找哪里滿了 → 用 du/find 找大目錄/大文件 → 清理/重啟釋放空間。
如果經常出現,就加一個定時任務定期處理。