linux磁盤空間占滿問題快速定位並解決



經常會遇到這樣的場景:測試環境磁盤跑滿了,導致系統不能正常運行!
此時就需要查看是哪個目錄或者文件占用了空間。
常使用如下幾個命令進行排查:df, lsof,du。


通常的解決步驟如下:
1. df -h 查看是哪個掛在目錄滿了,常常是根目錄/占滿

[root@test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 50G 25G 22G 54% /
tmpfs 7.8G 0 7.8G 0% /dev/shm

2. 快速定位一下應用日志大小情況
比如tomcat日志,應用系統自己的日志等。

3. 如果能直觀地看到日志文件過大,則酌情進行刪除。有時候刪除日志文件之后再df -h查看空間依然被占滿,繼續排查。
lsof file_name 查看文件占用進程情況,如果刪除的日志正在被某個進程占用,則必須重啟或者kill掉進程。

[root@test ~]# lsof /usr/local/apache-tomcat-7.0.54/logs/catalina.out
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 7053 root 1w REG 202,1 958123 1180888 /usr/local/apache-tomcat-7.0.54/logs/catalina.out
java 7053 root 2w REG 202,1 958123 1180888 /usr/local/apache-tomcat-7.0.54/logs/catalina.out

4. 如果不能直觀地排除出是某個日志多大的原因,就需要看一下指定目錄下的文件和子目錄大小情況,使用du命令。

du -h --max-depth=1 path | sort -hr #查看目錄大小並按照大小倒序展示
[root@test ~]# du -h --max-depth=1 /usr/local/ | sort -hr
2.6G    /usr/local/
1.1G    /usr/local/mysql
358M    /usr/local/jdk1.8.0_121
......

 

【參考】
http://www.cnblogs.com/peida/archive/2012/12/10/2810755.html 每天一個linux命令(34):du 命令
http://blog.csdn.net/cjf_iceking/article/details/37593963 Linux中刪除文件,磁盤空間未釋放問題追蹤
https://segmentfault.com/q/1010000003044027 linux 刪除文件后,如何釋放磁盤空間?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM