1. 程式人生 > 實用技巧 >Linux磁碟問題排查

Linux磁碟問題排查

先貼命令:du-m--max-depth=1或du-h--max-depth=1du:用於統計linux中檔案或目錄所佔磁碟空間的大小du引數######-
m:以M為單位展示查詢結果
-h:以K、M、G為單位展示查詢結果,提高資訊可讀性
--max-depth=1:其中,數字“1”是指查詢結果中最多顯示的目錄層數,這裡指最多顯示一層目錄

檢視磁碟空間#df -mFilesystem 1M-blocks Used Available Use% Mounted on/dev/xvda2                   17647 17589 0   100% /tmpfs 1941 0 1941 0% /dev/shm/dev/xvda1 485
33 427 8% /boot可以發現/dev/xvda2 已滿,而且是 根目錄/下所有資訊掛載在這裡。所以要到 根目錄下去排查哪裡佔用空間#cd / #du -h --max-depth=1 20M ./lib64 115M ./var 25M ./etc 23M ./boot 5.8M ./bin 16K ./lost+found 72K ./root 8.0K ./mnt 4.0K ./srv 0 ./sys du: cannot access `./proc/29049/task/29049/fd/4': No such file or directory du: cannot access `./proc/29049
/task/29049/fdinfo/4': No such file or directory du: cannot access `./proc/29049/fd/4': No such file or directory du: cannot access `./proc/29049/fdinfo/4': No such file or directory 0 ./proc 132K ./dev 16 G ./home 0 ./selinux 11M ./sbin 4.0K ./media 56K ./opt 244K ./tmp 751M ./usr 146M ./lib25.9G . --總共佔用的空間可以看到/home下佔用了16G,這時候切換到home下檢視#cd /home #du -h --max-depth=1這樣一層一層可以查到最終佔用空間的地方檢視檔案大小#ls -lhS-rw-r--r--. 1
root root 96K Aug 1 14:41 catalina.out-rw-r--r--. 1 root root 21K Jun 29 11:18 catalina.2018-06-29.log-rw-r--r--. 1 root root 1.2K Aug 1 14:41 localhost_access_log.2018-08-01.txt最後發現tomcat的日誌沾滿了

du命令詳解:du [-abcDhHklmsSx] [-L <符號連線>][-X <檔案>][--block-size][--exclude=<目錄或檔案>] [--max-depth=<目錄層數>][--help][--version][目錄或檔案]
常用引數:
-a或-all 為每個指定檔案顯示磁碟使用情況,或者為目錄中每個檔案顯示各自磁碟使用情況。
-b或-bytes 顯示目錄或檔案大小時,以byte為單位。
-c或–total 除了顯示目錄或檔案的大小外,同時也顯示所有目錄或檔案的總和。
-D或–dereference-args 顯示指定符號連線的原始檔大小。
-h或–human-readable 以K,M,G為單位,提高資訊的可讀性。
-H或–si 與-h引數相同,但是K,M,G是以1000為換算單位,而不是以1024為換算單位。
-k或–kilobytes 以1024 bytes為單位。
-l或–count-links 重複計算硬體連線的檔案。
-L<符號連線>或–dereference<符號連線> 顯示選項中所指定符號連線的原始檔大小。
-m或–megabytes 以1MB為單位。
-s或–summarize 僅顯示總計,即當前目錄的大小。
-S或–separate-dirs 顯示每個目錄的大小時,並不含其子目錄的大小。
-x或–one-file-xystem 以一開始處理時的檔案系統為準,若遇上其它不同的檔案系統目錄則略過。
-X<檔案>或–exclude-from=<檔案> 在<檔案>指定目錄或檔案。
–exclude=<目錄或檔案> 略過指定的目錄或檔案。
–max-depth=<目錄層數> 超過指定層數的目錄後,予以忽略。
–help 顯示幫助。
–version 顯示版本資訊。

1. 要顯示一個目錄樹及其每個子樹的磁碟使用情況
du /home/linux
這在/home/linux目錄及其每個子目錄中顯示了磁碟塊數。2> 要通過以1024位元組為單位顯示一個目錄樹及其每個子樹的磁碟使用情況
du -k /home/linux
這在/home/linux目錄及其每個子目錄中顯示了 1024 位元組磁碟塊數。
3> 以MB為單位顯示一個目錄樹及其每個子樹的磁碟使用情況
du -m /home/linux
這在/home/linux目錄及其每個子目錄中顯示了 MB 磁碟塊數。
4> 以GB為單位顯示一個目錄樹及其每個子樹的磁碟使用情況
du -g /home/linux
這在/home/linux目錄及其每個子目錄中顯示了 GB 磁碟塊數。
5>檢視當前目錄下所有目錄以及子目錄的大小:
du -h .
“.”代表當前目錄下。也可以換成一個明確的路徑
-h表示用K、M、G的人性化形式顯示
6>檢視當前目錄下user目錄的大小,並不想看其他目錄以及其子目錄:
du -sh user
-s表示總結的意思,即只列出一個總結的值
du -h --max-depth=0 user
--max-depth=n表示只深入到第n層目錄,此處設定為0,即表示不深入到子目錄。
7>列出user目錄及其子目錄下所有目錄和檔案的大小:
du -ah user
-a表示包括目錄和檔案
8>列出當前目錄中的目錄名不包括xyz字串的目錄的大小:
du -h --exclude='*xyz*'
9>想在一個螢幕下列出更多的關於user目錄及子目錄大小的資訊:
du -0h user
-0(槓零)表示每列出一個目錄的資訊,不換行,而是直接輸出下一個目錄的資訊。
10>只顯示一個目錄樹的全部磁碟使用情況
du -s /home/linux