1: 如何查找大檔案?
搜尋目前目錄下,超過100M大小的檔案:
<code>[root@getlnx01 u03]# find . -type f -size +100M</code>
<code>./usr/local/jdk-7u67-linux-x64.tar.gz</code>
<code>./data/log/charge-service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>08</code><code>.log</code>
<code>./data/log/aaa_service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>09</code><code>.log</code>
<code>./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>1</code><code>.log</code>
<code>./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>2</code><code>.log</code>
<code>./opt/backend/charge-service/</code><code>1.2</code><code>/shared/console.log</code>
<code>./opt/backend/express_service/</code><code>0.0</code><code>.</code><code>3</code><code>.tar.gz</code>
<code>./opt/backend/aaa-service/</code><code>1.2</code><code>/shared/console.log</code>
更詳細顯示一些檔案屬性或資訊:
<code>[root@getlnx01 u03]# find . -type f -size +100M -print0 | xargs -</code><code>0</code> <code>ls -l</code>
<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>542795006</code> <code>8</code><code>月 </code><code>30</code> <code>15</code><code>:</code><code>14</code> <code>./data/log/charge-service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>08</code><code>.log</code>
<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>225658142</code> <code>8</code><code>月 </code><code>25</code> <code>16</code><code>:</code><code>28</code> <code>./data/log/aaa_service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>09</code><code>.log</code>
<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>253623621</code> <code>8</code><code>月 </code><code>30</code> <code>15</code><code>:</code><code>15</code> <code>./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>1</code><code>.log</code>
<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>373547598</code> <code>8</code><code>月 </code><code>25</code> <code>16</code><code>:</code><code>28</code> <code>./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>2</code><code>.log</code>
<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>645631934</code> <code>8</code><code>月 </code><code>30</code> <code>15</code><code>:</code><code>15</code> <code>./opt/backend/charge-service/</code><code>1.2</code><code>/shared/console.log</code>
<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>209314900</code> <code>8</code><code>月 </code><code>30</code> <code>15</code><code>:</code><code>15</code> <code>./opt/backend/aaa-service/</code><code>1.2</code><code>/shared/console.log</code>
<code>-rw-r--r-- </code><code>1</code> <code>root root </code><code>315334884</code> <code>12</code><code>月 </code><code>21</code> <code>2015</code> <code>./opt/backend/express_service/</code><code>0.0</code><code>.</code><code>3</code><code>.tar.gz</code>
<code>-rw-r--r-- </code><code>1</code> <code>root root </code><code>142376665</code> <code>6</code><code>月 </code><code>11</code> <code>2015</code> <code>./usr/local/jdk-7u67-linux-x64.tar.gz</code>
<code>-rw-rw-r-- </code><code>1</code> <code>deploy deploy </code><code>105085974</code> <code>8</code><code>月 </code><code>30</code> <code>15</code><code>:</code><code>15</code> <code>./usr/local/push-tomcat/logs/push/info.log6829699375703641.tmp</code>
當我們隻需要查找超過100M大小檔案,并顯示查找出來檔案的具體大小,并排序(下)
<code>[root@getlnx01 u03]# find . -type f -size +100M -print0 | xargs -</code><code>0</code> <code>du -h</code>
<code>102M ./usr/local/push-tomcat/logs/push/info.log6829699375703641.tmp</code>
<code>136M ./usr/local/jdk-7u67-linux-x64.tar.gz</code>
<code>518M ./data/log/charge-service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>08</code><code>.log</code>
<code>216M ./data/log/aaa_service/test-access.log.</code><code>2016</code><code>-</code><code>08</code><code>-</code><code>09</code><code>.log</code>
<code>242M ./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>1</code><code>.log</code>
<code>357M ./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>2</code><code>.log</code>
<code>616M ./opt/backend/charge-service/</code><code>1.2</code><code>/shared/console.log</code>
<code>301M ./opt/backend/express_service/</code><code>0.0</code><code>.</code><code>3</code><code>.tar.gz</code>
<code>201M ./opt/backend/aaa-service/</code><code>1.2</code><code>/shared/console.log</code>
<code>[root@getlnx01 u03]# find . -type f -size +100M -print0 | xargs -</code><code>0</code> <code>du -h | sort -nr</code>
<code>243M ./home/deploy/logs/testmqlogs/otherdays/testmq_client.</code><code>1</code><code>.log</code>
不過如上截圖所示,有時候排列的順序并不完全是按大小一緻,這個是因為du指令的參數h所緻,你可以統一使用使用MB來顯示,這樣就能解決這個問題。到這裡,這個在Linux系統查找大檔案的指令已經非常完美了,當然如果你還有很多的需求,那麼可以在這個指令上做修改、調整.
2: 如何查找Linux下的大目錄
譬如有時候磁盤空間告警了,而你平時又疏于管理、監控檔案的增長,那麼我需要快速的了解哪些目錄變得比較大,那麼此時我們可以借助du指令來幫我們解決這個問題。
<code>[root@getlnx01 u03]# du -h --max-depth=</code><code>1</code>
<code>16K ./lost+found</code>
<code>33G ./flash_recovery_area</code>
<code>37G ./oradata</code>
<code>70G .</code>
<code>如果你想知道flash_recovery_area目錄下面有哪些大檔案夾,那麼可以将參數max-depth=</code><code>2</code> <code>,如果你想對搜尋出來的結果進行排序,那麼可以借助于sort指令。如下所示</code>
<code>[root@getlnx01 u03]# du -h --max-depth=</code><code>2</code> <code>| sort -n</code>
<code>3</code><code>.5G ./flash_recovery_area/EPPS</code>
<code>29G ./flash_recovery_area/backup</code>
<code>37G ./oradata/epps</code>
<code>[root@getlnx01 u03]# du -hm --max-depth=</code><code>2</code> <code>| sort -n</code>
<code>1</code> <code>./lost+found</code>
<code>3527</code> <code>./flash_recovery_area/EPPS</code>
<code>29544</code> <code>./flash_recovery_area/backup</code>
<code>33070</code> <code>./flash_recovery_area</code>
<code>37705</code> <code>./oradata</code>
<code>37705</code> <code>./oradata/epps</code>
<code>70775</code> <code>.</code>
<code>[root@getlnx01 /]# du -hm --max-depth=</code><code>2</code> <code>| sort -nr | head -</code><code>12</code>
<code>407480</code> <code>.</code>
<code>167880</code> <code>./u04</code>
<code>158685</code> <code>./u02/oradata</code>
<code>158685</code> <code>./u02</code>
<code>152118</code> <code>./u04/oradata</code>
<code>70775</code> <code>./u03</code>
<code>37705</code> <code>./u03/oradata</code>
<code>33070</code> <code>./u03/flash_recovery_area</code>
<code>5995</code> <code>./u01/app</code>
<code>5995</code> <code>./u01</code>
<code>3551</code> <code>./usr</code>
<code>1558</code> <code>./usr/share</code>
參考資料:
<a href="http://linuxandfriends.com/how-to-find-large-files-in-linux-using-command-line/" target="_blank">http://linuxandfriends.com/how-to-find-large-files-in-linux-using-command-line/</a>
<a href="http://www.docin.com/p-563963500.html" target="_blank">http://www.docin.com/p-563963500.html</a>
本文轉自奔跑在路上部落格51CTO部落格,原文連結http://blog.51cto.com/qiangsh/1844338如需轉載請自行聯系原作者
qianghong000