linux 磁盤空間滿了,排查記錄



先貼命令:du -m --max-depth=1或du -h --max-depth=1du:用於統計linux中文件或目錄所占磁盤空間的大小du參數######-
m:以M為單位展示查詢結果
-h:以K、M、G為單位展示查詢結果,提高信息可讀性
--max-depth=1:其中,數字“1”是指查詢結果中最多顯示的目錄層數,這里指最多顯示一層目錄

查看磁盤空間
#df -m
Filesystem                   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 ./lib
25.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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM