
作業系統: RHEL 6.9
問題
我/dev/mapper/vg_rayruhsso-lv_root
安裝的檔案系統/
沒有可用大小。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_rayruhsso-lv_root
148G 145G 0 100% /
tmpfs 20G 0 20G 0% /dev/shm
/dev/sda1 477M 41M 411M 9% /boot
/dev/mapper/vg_rayruhsso-lv_home
270G 54G 202G 22% /home
我想解決什麼問題
弄清楚是什麼消耗了整個空間(我不想擴展它的大小,因為它上週從 52G 擴展到 148G)。問題是,在追蹤的過程中,我發現/根佔用大量空間(128G)。
# du -sh *
984K
9.3M bin
39M boot
4.0K CdbsMutex
4.0K cgroup
180K dev
41M etc
54G home
215M lib
28M lib64
16K lost+found
4.0K media
0 misc
4.0K mnt
0 net
70M opt
du: cannot access `proc/4754/task/4754/fd/4': No such file or directory
du: cannot access `proc/4754/task/4754/fdinfo/4': No such file or directory
du: cannot access `proc/4754/fd/4': No such file or directory
du: cannot access `proc/4754/fdinfo/4': No such file or directory
0 proc
128G root
17M sbin
0 selinux
4.0K srv
0 sys
5.5M tmp
12G u01
3.2G usr
2.0G var
我檢查了它的子目錄,發現其中最大的檔案/目錄有330M,儘管du -sh
顯示為128G。
#du -sh /root/*
4.0K /root/anaconda-ks.cfg
4.0K /root/Desktop
4.0K /root/Documents
4.0K /root/Downloads
64K /root/install.log
12K /root/install.log.syslog
4.0K /root/Music
4.0K /root/Pictures
4.0K /root/Public
4.0K /root/Templates
330M /root/veritas
4.0K /root/Videos
# cd /root/
# du -sh
128G
怎麼了?如何調查哪個文件消耗了所有這些空間?
我試圖找出打開的文件,但沒有返回任何輸出:
lsof | grep deleted
任何想法?
編輯:
# du -h --max-depth=1 /root | sort -h
4.0K /root/Desktop
4.0K /root/Documents
4.0K /root/Downloads
4.0K /root/.gvfs
4.0K /root/Music
4.0K /root/.nautilus
4.0K /root/Pictures
4.0K /root/Public
4.0K /root/Templates
4.0K /root/Videos
8.0K /root/.abrt
8.0K /root/.ssh
12K /root/.dbus
16K /root/.gnote
16K /root/.gnupg
16K /root/.thumbnails
20K /root/.cache
28K /root/.gnome2
64K /root/.config
144K /root/.pulse
276K /root/.gconf
364K /root/.local
396K /root/.kde
330M /root/veritas
128G /root
答案1
經過一番來回討論和私下討論後…
用於du -h --max-depth=1 /root | sort -h
搜尋佔用空間的內容。
目前,由於 .glob 的擴展,您正在跳過點檔案和點目錄du -sh /root/*
。
現在,結果包括編輯中的點文件和點文件夾,看來消耗空間的文件直接位於/root
.
若要了解哪些檔案佔用最多空間,請/root
使用下列命令。
ls -alhSr /root
答案2
您是否可能發出了刪除命令,但它從未結束,因為您嘗試刪除的檔案正在被某些應用程式使用?
嘗試運行:
/usr/bin/lsof | grep deleted
上面的命令將顯示所有正在等待刪除且正在被進程使用的檔案。
如果存在此類文件,請終止其進程並再次檢查容量。
解釋:
在 Linux 或 Unix 系統上,透過 rm 或檔案管理器應用程式刪除檔案將會取消該檔案與檔案系統目錄結構的連結;但是,如果文件仍然打開(正在由正在運行的進程使用),則該進程仍然可以存取該文件,並且將繼續佔用磁碟空間。因此,在檔案系統上清除該檔案的空間之前,可能需要重新啟動此類進程。
有關此主題的更多資訊可以找到這裡。
答案3
您也可以看看ncdu
。它很像樹大小,多次幫助我定位大檔案和目錄結構。