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