1. 程式人生 > >利用linux的df和du命令檢視檔案和目錄的記憶體佔用

利用linux的df和du命令檢視檔案和目錄的記憶體佔用

版權宣告:本文為博主原創文章,轉載請超連結註明出處。    https://blog.csdn.net/ljc1026774829/article/details/74935658
當磁碟大小超過標準時會有報警提示,這時如果掌握df和du命令是非常明智的選擇。

df可以檢視一級資料夾大小、使用比例、檔案系統及其掛入點,但對檔案卻無能為力。

du可以檢視檔案及資料夾的大小。

兩者配合使用,非常有效。比如用df檢視哪個一級目錄過大,然後用df檢視資料夾或檔案的大小,如此便可迅速確定癥結。

做後臺開發經常遇到磁碟佔滿的情況,畢竟不斷有日誌在生成,不斷有檔案在備份,如果長時間不管的話,總有一天會佔用滿。

題主有一天在釋出java專案的時候,就發現提示

No space left on device
1
因為題主的釋出指令碼中有一段邏輯是把之前的jar包先備份到/data/backup目錄,執行之一步的時候發現磁碟空間不足,於是報錯,版本釋出失敗。

遇到這種問題,解決思路很簡單嘛,磁碟滿了刪除沒用的東西咯,沒錯,但是怎樣能最快找到那些佔用磁碟很大又已經沒用的檔案或者資料夾呢,這就是今天的課題了。利用linux的df和du命令檢視檔案和目錄的記憶體佔用

第一步 使用df命令

[[email protected]_95_213_centos ~]$ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/vda1              8254240   3710232   4124716  48% /
/dev/vdb1             30962748  21870140   7519728  75% /usr/local
/dev/vdb2             20641788   1672712  17920480   9% /home
/dev/vdb4            138303008 131277884         0 100% /data



df命令可以顯示目前所有檔案系統的可用空間及使用情形

引數-h表示使用「Human-readable」的輸出,也就是在檔案系統大小使用 GB、MB 等易讀的格式。
上面的命令輸出的第一個欄位Filesystem及最後一個欄位Mounted on分別是檔案系統及其掛入點。我們可以看到/dev/vda1 這個分割區被掛在根目錄下。
接下來的四個欄位 Size、Used、Available、及Use%分別是該分割區的容量、已使用的大小、剩下的大小、及使用的百分比。
可以看到/data這個目錄磁碟已經到了100%,所以在想要往/data/backup目錄寫檔案時系統發出No space left on device的警告。

那麼接下來的目的很簡單,清理/data目錄,找出佔用磁碟空間大而且沒用的檔案或者目錄,delete!

第二步 使用du命令
進入data目錄

[[email protected]_95_213_centos jweblog]$ cd /data

執行du命令
[[email protected]_95_213_centos data]$ du --max-depth=1 -h
15G  ./jweb_static
108G ./jweblog
8.2M ./news
1.3G ./japplog
16K  ./lost+found
7.7M ./backup
595M ./varlog
1.1G ./pyweb_log
125G .



du命令可以查詢檔案或資料夾的磁碟使用空間

引數-h表示使用「Human-readable」的輸出,也就是在檔案系統大小使用 GB、MB 等易讀的格式

引數--max-depth指定深入目錄的層數,這是個極為有用的引數,如果當前目錄下檔案和資料夾很多,使用不帶引數du的命令,會迴圈列出所有檔案和資料夾所使用的空間。這對檢視究竟是那個地方過大是不利的

可以看到的是jweblog這個目錄有108G個G,沃德天,趕緊進去看看~

進入jweblog目錄

[[email protected]_95_213_centos data]$ cd jweblog/


繼續執行du命令

[[email protected]_95_213_centos jweblog]$ du --max-depth=1 -h
32K  ./jweb_mbox_acs
4.0K ./jweb_cz_gmaster
732K ./jweb_coomix_scibo
15G  ./jweb_game_farm
23G  ./jweb_open_manager
404M ./jweb_mbox_app
8.2M ./jweb_ak_backend
14M  ./jweb_wifishare_manager
23M  ./jweb_yzj_open
4.3G ./jweb_akgame_third
4.2G ./jweb_mpos_wxuser_auth_ak
654M ./jweb_mbox_wifi_svr
608K ./jweb_qqy_wx_auth
970M ./jweb_wb_gmwx
8.3G ./jweb_mpos_wxuser_auth
4.2G ./jweb_bc_bottle
160K ./jweb_mbox_wifi_wx_svr
132K ./jweb_wb_gmaster
1.1G ./jweb_mpos_kmkuser_auth
4.0K ./default
35G  ./jweb_promotion_manager
12G  ./jweb_mpos_wxuser_auth_cn
108G .



到此應該就可以破案了,這裡是各個工程的日誌,看看哪些日誌沒用的刪掉就可以啦~
--------------------- 
作者:壹只皮卡丘 
來源:CSDN 
原文:https://blog.csdn.net/ljc1026774829/article/details/74935658 
版權宣告:本文為博主原創文章,轉載請附上博文連結!