【前言】
筆者最近有服務(wù)器突然停服務(wù)了,我登錄服務(wù)器嚇了一跳,下一面我們一起回顧一這個(gè)驚心動(dòng)魄故事吧。
首先,使用ssh遠(yuǎn)程登錄服務(wù)器,請(qǐng)出df大神看看硬盤的使用情況吧
df
Linux df(英文全拼:disk free) 命令用于顯示目前在 Linux 系統(tǒng)上的文件系統(tǒng)磁盤使用情況統(tǒng)計(jì)。
一般/dev/vda1為系統(tǒng)盤,像vdb、vdc為數(shù)據(jù)盤。
我們發(fā)現(xiàn)df輸出的格式?jīng)]有單位,可讀性太低了。使用-h參數(shù)可解決。
-h或–human-readable 以K,M,G為單位,提高信息的可讀性。
我的媽啊,所以居然/dev/vda1為系統(tǒng)盤100%, 還好能ssh登錄服務(wù)器,只是http,mysql,java應(yīng)用服務(wù)崩潰了。
是哪個(gè)目錄或文件太小了,導(dǎo)致呢?我想到可能是隊(duì)友java應(yīng)用打印的日志,但他布哪個(gè)目錄,我不清楚。我們有應(yīng)用服務(wù)一般在/www/wwwroot, 所以我先定位在此目錄。然后請(qǐng)出du命令
du
Linux du (英文全拼:disk usage)命令用于顯示目錄或文件的大小。先看看du
-h:以人類可讀的方式顯示
-a:顯示目錄占用的磁盤空間大小,還要顯示其下目錄和文件占用磁盤空間的大小
-s:顯示目錄占用的磁盤空間大小,不要顯示其下子目錄和文件占用的磁盤空間大小
-c:顯示幾個(gè)目錄或文件占用的磁盤空間大小,還要統(tǒng)計(jì)它們的總和
--apparent-size:顯示目錄或文件自身的大小
-l :統(tǒng)計(jì)硬鏈接占用磁盤空間的大小
-L:統(tǒng)計(jì)符號(hào)鏈接所指向的文件占用的磁盤空間大小
du -h:這個(gè)就不多說(shuō)了。
du -h
從輸出可以看出du是顯示所有目錄和子目錄所占用的磁盤空間。輸出內(nèi)容太多太亂了,不方便排查。
可以用下面的參數(shù)
–max-depth=<目錄層數(shù)>
使用--max-depth=<目錄層數(shù)> 超過(guò)指定層數(shù)的目錄后,就方面排除了。
比如最多顯示1層:
顯示多了不方便查看,太亂多,如果再多點(diǎn),還很難查到,哪個(gè)目錄或文件大,就要用到排序, 請(qǐng)出sort命令。
sort
使用sort命令即可排序。 使用|來(lái)分隔不同的命令。
下面說(shuō)下本文會(huì)用到的sort參數(shù): -r(--reverse) 以相反的順序來(lái)排序 -h( --human-numeric-sort):使用易讀性數(shù)字(例如:2K、1G),默認(rèn)從小到大排序 -s -s或–summarize 僅顯示總計(jì)。只顯示指定目錄或當(dāng)前目錄的大小。
我們只顯示一層目錄大小并排序,就能很多找出最大的目錄或文件。
這里我們很快知道了哪個(gè)目錄占用空間大,直接進(jìn)入目錄manager
查看一下,發(fā)現(xiàn)有一個(gè)日志文件,太嚇人了
不知隊(duì)友是怎么想的,這么的日志文件,怎么查看呢。打印的是一些什么呢?看日志命名應(yīng)該是9月20日啟動(dòng)的服務(wù),才過(guò)去幾天啊,就打印了那么多日志,云服務(wù)器很貴的,不能這樣玩啊, 而且這個(gè)日志文件,根本沒(méi)法看啊。
爭(zhēng)得隊(duì)友同事,把此文件刪除。下面命令:
rm -f 0920.log
占用硬盤空間仍然
再df -h看一下,占用有硬盤空間依然。怎么回事呢?
雖然刪除了那個(gè)文件,但是服務(wù)一直占用那個(gè)文件,必須要重啟占用應(yīng)用服務(wù)。是哪個(gè)服務(wù),我也不知道。
用下面看看是哪個(gè)程序在寫0920.log
lsof -n | grep 0920.log
只知道是java應(yīng)用在寫0920.log,具體服務(wù)還是不清楚。
問(wèn)題臨時(shí)解決
用history看看執(zhí)行過(guò)什么命令,果然被我查到了。
如果history沒(méi)找到,可以看看開(kāi)機(jī)啟動(dòng), 用下面命令:
cat /etc/rc.local 和
ls /etc/init.d
重啟java服務(wù)后, 硬盤空間,就釋放了。
但這個(gè)方法,治標(biāo)不治本,過(guò)幾天,還是被日志撐滿服務(wù)器。還是讓隊(duì)友改代碼吧。
總結(jié)
應(yīng)用程序打印日志無(wú)可說(shuō)的, 但這樣打印日志,不可取的。各位看官你們說(shuō)呢?
審核編輯:劉清
-
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
592瀏覽量
27357 -
SSH
+關(guān)注
關(guān)注
0文章
185瀏覽量
16308
原文標(biāo)題:Linux查找大文件、大目錄 - 解決磁盤空間不足的問(wèn)題
文章出處:【微信號(hào):嵌入式加油站,微信公眾號(hào):嵌入式加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論