原帖地址:https://www.cnblogs.com/iyoume2008/p/6105590.html
今天正好碰到這樣的問題,在部落格園中看到有以上地址的一篇文章,照著上面的操作解決了問題,但是排版上看著不是特別舒服,自己也想記錄下來,就全文COPY了,只是改了下版式。望作者諒解
1 如何查詢大檔案
其實很多時候,你需要了解 /u01/app/oracle/oradata/prod/ 下有哪些大的資料檔案,比如檔案大小超過100M或1G(閥值視具體情況而定)。那麼如何把這些大檔案搜尋出來呢?
1.1搜尋指定目錄下超過指定大小的檔案
例如我要搜尋 /u01/app/oracle/oradata/prod/ 下,超過500M大小的檔案
[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/ -type f -size +500M /u01/app/oracle/oradata/prod/sysaux01.dbf /u01/app/oracle/oradata/prod/system01.dbf
如上命令所示,我們僅僅能看到超過500M大小的檔案的檔名稱,但是對檔案的資訊(例如,檔案大小、檔案屬性)一無所知,那麼能否更詳細顯示一些檔案屬性或資訊呢,當然可以
1.2搜尋指定目錄下超過指定大小的檔案(顯示檔案使用者、屬組)
[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/ -type f -size +500M -print0 | xargs -0 ls –l -rw-r----- 1 oracle oinstall 545267712 11-19 23:20 /u01/app/oracle/oradata/prod/sysaux01.dbf -rw-r----- 1 oracle oinstall 744497152 11-19 23:20 /u01/app/oracle/oradata/prod/system01.dbf
1.3搜尋指定目錄下超過指定大小的檔案(顯示檔案詳細size)
當我們只需要查詢超過500M大小檔案,並顯示查詢出來檔案的具體大小,可以使用下面命令
[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/ -type f -size +500M -print0 | xargs -0 du –h 521M /u01/app/oracle/oradata/prod/sysaux01.dbf 711M /u01/app/oracle/oradata/prod/system01.dbf
1.4搜尋指定目錄下超過指定大小的檔案(按大小排序,結果有出入)
如果你還需要對查詢結果按照檔案大小做一個排序,那麼可以使用下面命令
[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/ -type f -size +500M -print0 | xargs -0 du -h | sort -nr 711M /u01/app/oracle/oradata/prod/system01.dbf 521M /u01/app/oracle/oradata/prod/sysaux01.dbf
1.5搜尋指定目錄下超過指定大小的檔案(按大小排序,嚴格的)
不過如上截圖所示,有時候排列的順序並不完全是按大小一致,這個是因為du命令的引數h所致,你可以統一使用使用MB來顯示,這樣就能解決這個問題
[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/ -type f -size +500M -print0 | xargs -0 du -hm | sort –n 521 /u01/app/oracle/oradata/prod/sysaux01.dbf 711 /u01/app/oracle/oradata/prod/system01.dbf
1.6 搜尋指定目錄下超過指定大小的檔案(詳細顯示檔案的屬主、屬組、檔案大小(M為單位))
[oracle@Oracle11g ~]$ find /u01/app/oracle/oradata/prod/ -type f -size +500M -print0 | xargs -0 ls -lh | sort -nr rw-r----- 1 oracle oinstall 711M 11-20 09:06 /u01/app/oracle/oradata/prod/system01.dbf -rw-r----- 1 oracle oinstall 521M 11-20 09:06 /u01/app/oracle/oradata/prod/sysaux01.dbf
2 如何查詢Linux下的大目錄
譬如有時候磁碟空間告警了,而你平時又疏於管理、監控檔案的增長,那麼我需要快速的瞭解哪些目錄變得比較大,那麼此時我們可以藉助du命令來幫我們解決這個問題
2.1查詢指定目錄下的大目錄
[oracle@Oracle11g ~]$ du -h /u01 --max-depth=1 5.7G /u01/app 16K /u01/lost+found 5.7G /u01 [oracle@Oracle11g ~]$ du -h /u01 --max-depth=2 2.6M /u01/app/oraInventory 5.7G /u01/app/oracle 5.7G /u01/app 16K /u01/lost+found 5.7G /u01 [oracle@Oracle11g ~]$ du -h /u01 --max-depth=3 16K /u01/app/oraInventory/ContentsXML 8.0K /u01/app/oraInventory/oui 2.6M /u01/app/oraInventory/logs 2.6M /u01/app/oraInventory 1.7G /u01/app/oracle/oradata 4.0K /u01/app/oracle/checkpoints 4.0G /u01/app/oracle/product 716K /u01/app/oracle/admin 232K /u01/app/oracle/cfgtoollogs 6.8M /u01/app/oracle/diag 5.7G /u01/app/oracle 5.7G /u01/app 16K /u01/lost+found 5.7G /u01
如果你想知道/u01目錄下面有哪些大資料夾,那麼可以將引數max-depth=2 ,如果你想對搜尋出來的結果進行排序,那麼可以藉助於sort命令。如下所示
[oracle@Oracle11g ~]$ du -h /u01 --max-depth=2 |sort -n 2.6M /u01/app/oraInventory 5.7G /u01 5.7G /u01/app 5.7G /u01/app/oracle 16K /u01/lost+found [oracle@Oracle11g ~]$ du -h /u01 --max-depth=3 |sort -n 1.7G /u01/app/oracle/oradata 2.6M /u01/app/oraInventory 2.6M /u01/app/oraInventory/logs 4.0G /u01/app/oracle/product 4.0K /u01/app/oracle/checkpoints 5.7G /u01 5.7G /u01/app 5.7G /u01/app/oracle 6.8M /u01/app/oracle/diag 8.0K /u01/app/oraInventory/oui 16K /u01/app/oraInventory/ContentsXML 16K /u01/lost+found 232K /u01/app/oracle/cfgtoollogs 716K /u01/app/oracle/admin
有時候搜尋出來的結果太多了(譬如,我從根目錄開始搜尋),一直在刷屏,如果我只想查出最大的5個資料夾,怎麼辦呢?此時就要藉助head命令來顯示了
[oracle@Oracle11g ~]$ du -hm /u01/app/oracle/ --max-depth=2 | sort -nr | head -5 5741 /u01/app/oracle/ 4057 /u01/app/oracle/product/11.2.0 4057 /u01/app/oracle/product 1677 /u01/app/oracle/oradata/prod 1677 /u01/app/oracle/oradata
3.自己整理的(實用的)
3.1 查詢系統中的大目錄(從大到小排序,取前5個)
[root@Oracle11g ~]# du -hm / --max-depth=1 | sort -nr | head -5 9456 / 5744 /u01 2964 /usr 260 /dev 234 /lib
3.2 查詢上面目錄(/u01)中的大檔案
[root@Oracle11g ~]# find /u01/app/oracle/ -type f -size +500M -print0 | xargs -0 ls -lh | sort -nr -rw-r----- 1 oracle oinstall 711M 11-20 09:41 /u01/app/oracle/oradata/prod/system01.dbf -rw-r----- 1 oracle oinstall 521M 11-20 09:36 /u01/app/oracle/oradata/prod/sysaux01.dbf