查詢linux系統中大檔案的方法

不一樣的天空w發表於2017-12-14

http://blog.csdn.net/bobo0915/article/details/51980650

可以用下面的命令查詢到系統中哪一個資料夾有問題然後逐層檢視就可以找到是哪一個檔案了

命令是

首先切換到根目錄
cd /
du -sh ./*
du -sh ./* | sort

然後找到最大的資料夾
逐層就可以找到是哪一個資料夾最大是否是有問題的,一般這樣就可以確定目標檔案是哪一個了

==========================

問題:磁碟空間只使用了56%仍有剩餘空間,但是建立檔案和建立資料夾就是提示裝置沒有空間了。

分析:在磁碟上建立檔案的時候需要兩個條件:
        1.磁碟空間,
        2.需要有inode  任何一個滿了都回提示裝置沒有空間。
此處具體原因是由於磁碟的inode分配完了,導致提示磁碟滿。


可以使用df -ia檢視磁碟詳細資訊。

[root@~]# df -ia  
       檔案系統               Inode (I)已用 (I)可用 (I)已用% 掛載點  
       /dev/sda3            4928640   89934 4838706    2%  /  
       proc                       0       0       0    -   /proc  
       sysfs                      0       0       0    -   /sys  
       devpts                     0       0       0    -   /dev/pts  
       /dev/sda1              50200      35   50165    1%  /boot  
       tmpfs                  35352       1   35351    1%  /dev/shm  
       none                       0       0       0    -   /proc/sys/fs/binfmt_misc  
       /dev/drbd0            251392  251392       0  100%  /data  

以上檢視到(I) 使用了100%   

解決:刪除一些無用的檔案或者資料夾,釋放inode。

關於磁碟空間中索引節點爆滿的問題還是挺多的,自己本想寫寫處理方案,但是看到了網友們文采不錯,對於此問題的處理方法都比較妥當,就借過來跟大家分享下:

一、發現問題:
  在一臺配置較低的Linux伺服器(記憶體、硬碟比較小)的/data分割槽內建立檔案時,系統提示磁碟空間不足,用df -h命令檢視了一下磁碟使用情況,發現/data分割槽只使用了66%,還有12G的剩餘空間,按理說不會出現這種問題。

二、分析問題:
  後來用df -i檢視了一下/data分割槽的索引節點(inode),發現已經用滿(IUsed=100%),導致系統無法建立新目錄和檔案。


inode譯成中文就是索引節點,每個儲存裝置(例如硬碟)或儲存裝置的分割槽被格式化為檔案系統後,應該有兩部份,
一部份是inode,而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小、屬主、歸屬的使用者組、讀寫許可權等。
另一部份是Block,Block是用來儲存資料用的。inode為每個檔案進行資訊索引,所以就有了inode的數值。作業系統根據指令,能透過inode值最快的找到相對應的檔案。
 而這臺伺服器的Block雖然還有剩餘,但inode已經用滿,因此在建立新目錄或檔案時,系統提示磁碟空間不足。

三、查詢原因:
 /data/cache目錄中存在數量非常多的小位元組快取檔案,佔用的Block不多,但是佔用了大量的

四、解決方案:
   1、刪除/data/cache目錄中的部分檔案,釋放出/data分割槽的一部分inode,特別要留意那些spool出來的檔案,這種檔案一般會佔用比較多的節點,因為比較小而且零碎,同時要多留意日誌檔案資訊等

  2、用軟連線將空閒分割槽/opt中的newcache目錄連線到/data/cache,使用/opt分割槽的inode來緩解/data分割槽inode不足的問題:
  ln -s /opt/newcache /data/cache

  3、更換伺服器,用高配置的伺服器替換低配置的伺服器。很多時候用錢去解決問題比用技術更有效,堆在我辦公桌上5臺全新的 DELL PowerEdge 2950 伺服器即將運往IDC機房。一般不建議


關於磁碟的inode滿100%--i節點大爆發

http://blog.sina.com.cn/s/blog_79d1f5e00100qywq.html

原因:
    通常是發現磁碟沒有滿但是無法寫入檔案。提示“no space left on device”,用df -i 檢視,應該會發現相應的分割槽是100%,一般都是crontab的job有問題,造成/var/spool/clientmqueue中產生許多的零碎檔案。

處理方法:
  用rm -rf *會不能刪除,並會有相應的提示,大意是引數太多。
  可以用多種方法,這裡提及一個我隨便寫的,在/var/spool/clientmqueue/下執行命令:“lsattr ./|awk -F"/" '{print $3}'|xargs -i rm -rf {}”用lsattr列出./下面的檔名的屬性,用awk取出名字,然後rm -rf

  還有一個方法比較普遍的使用:“find /var/spool/clientmqueue/ -type f -exec rm {} \;”或者在/var/spool/clientmqueue/目錄下“find ./ -exec rm {} \;”
  將crontab中沒有定向輸出的行都在最後加上“> /dev/null 2>&1”,在刪除的過程中操作。或者先停止crontab,加上重定向。








來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2148697/,如需轉載,請註明出處,否則將追究法律責任。

相關文章