目錄
- 前言
- 1. 基本知識
- 2. 實戰
前言
🤟 找工作,來萬碼優才:👉 #小程序://萬碼優才/r6rqmzDaXpYkJZF
爬蟲神器,無代碼爬取,就來:bright.cn
本身自搭建了一個寶塔,突然一下子多了好些空間,對此需要進行額外小心的清理
1. 基本知識
先補充一些基本知識命令
確認哪個大目錄占用空間:
- 在 / 下跑 du 命令,比如:
sudo du -h --max-depth=1 /
-h
:人類可讀(G/M單位)
--max-depth=1
:只看一層,不要遞歸太深
/
:從根目錄開始
找不到明顯異常,也可以直接搜索大文件:sudo find / -type f -size +500M -exec ls -lh {} \; | sort -k5 -rh | head -n 20
截圖如下:
上述這幾個命令著重講解下,別亂刪除(最好刪除一些log日志文件之類,不清楚的文件不要亂刪除)
文件 大小 | 是否可以清理 | 說明 |
---|---|---|
/proc/kcore 128T(假的) | ?不能動 | 這是虛擬內存文件,內核自己用的,看著大不用管,不能刪 |
/www/wwwlogs/java/springboot/eng-1.log | 3.9G | ?可以清理 springboot 應用日志,太大了,可以清空或者按需保留 |
/www/server/data/ruoyi@002dvue@002dpro/infra_api_access_log.ibd | 592M | 🟡謹慎處理 MySQL數據庫表文件,最好別直接刪,除非確定是無用表 |
對應清空日志文件可以使用:> /www/wwwlogs/java/springboot/eng-1.log
再者也可查詢各個相關的日志記錄:
du -sh /www/wwwlogs/*
du -sh /var/log/*# 如果服務器裝了 mysql,也要看看:
sudo du -sh /var/lib/mysql/*# 查詢網址備份文件
du -sh /www/backup/*
2. 實戰
上述內容根據實戰總結,有時候一些空間可以不必清理,可能為 緩存、假死文件需要重啟才可
比如如下情況:
sudo du -h --max-depth=1 /
總共加起來只有 53G 左右
但是 df -h 看到 / 分區已經用了 269G
重啟各個應用或者 重啟服務是最好的
這種情況,建議重啟下Java的各個應用或者網站應用:ps -ef | grep java
發現有兩個Java進程,但是查詢端口號的時候發現掛載的進程號是最新的日期,既可以把舊的進程號kill即可:ss -tnlp | grep 48080
也可能是刪除但忍讓占用的文件,被程序正在占用文件描述符(FD)
# 直接執行
lsof | grep deleted#也可通過上述執行的 sudo find / -type f -size +500M -exec ls -lh {} \; | sort -k5 -rh | head -n 20
# 特意找到對應文件大的名字:
lsof | grep '/.Recycle_bin/' | grep deleted
截圖如下:
可以對應進行kill -9 進程號,但保守一些還是重啟
這也更好的說明為啥df 和 dh都不大一樣
比如查看:lsof | grep deleted | awk '{print $7/1024/1024 " MB", $9}' | sort -rn | head -n 20
發現最大的文件占用200G
但是到對應的文件缺沒有顯示,顯示為空!這種情況一般重啟是最好用,直接釋放!
Linux有個機制:
文件在被刪除以后,只要還有進程持有,物理空間不會真正釋放。
必須要等進程徹底關閉文件描述符,操作系統才回收