無法追蹤 /root 下的大尺寸檔案/目錄

無法追蹤 /root 下的大尺寸檔案/目錄

作業系統: 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。它很像樹大小,多次幫助我定位大檔案和目錄結構。

相關內容