如何查找誰在使用磁碟空間
我的 vps 上有 2 個磁碟,一個是 40 GB,另一個是 80 GB,今天我看到我的 40GB 磁碟已 100% 滿,我不明白該空間在使用什麼。
這是完整的資訊
[root@topsites]# df -h 已使用的文件系統大小可用使用百分比已安裝在 /dev/xvda1 40G 38G 0 100% / tmpfs 3.9G 0 3.9G 0%/dev/shm /dev/xvde1 79G 51G 25G 68% /var/www
我的所有站點都在 /var/www 目錄中,這個目錄的總使用量是 57GB(總 /var 目錄)。我一一檢查了所有其他目錄,但沒有找到任何大數據。幾乎所有其他目錄最多使用 5GB,所以我不明白我的其他空間在哪裡。
我的計算是這樣的,我的所有網站文件總計 51GB,它使用第二個 80GB 磁碟,/var 使用更多 6GB,我認為使用我的 40GB 磁碟。在減去所有其他目錄使用後,至少 50% 的空間仍留在 40GB 磁碟上,但正如您所見,它顯示 100% 已使用。
誰能給我一個線索?
[root@topsites ~]# du -sh /* --exclude /proc --exclude /var/www 6.5M /箱 42M /開機 4.0K /cgroup 124K /開發 26M /等 60K /家 254M /庫 18M /lib64 20K /失去+找到 4.0K /媒體 4.0K/分鐘 4.0K /選擇 44K /根 9.2M /sbin 4.0K /selinux 4.0K /srv 0 /系統 8.0K /tmp 518M / 使用者 6.6G/var
du -sh /* --exclude /proc --exclude /var/www
然後向下工作以查看所有文件的位置。您的日誌可能會破壞音量。
然後查看是否有任何打開的文件被刪除但文件使用情況尚未被刪除。查找從以下位置返回的所有大文件:
sudo lsof | grep deleted
你在執行 RHEL/CentOS 嗎?確認您的文件系統在
/etc/fstab
.假設您正在使用
ext3
orext4
,您應該通過執行來確認為分區保留了多少空間tune2fs -l /path/to/partition | grep -i "reserve"
。例如;/dev/xvda1 | grep -i "reserve"
通常 5 - 10% 不可用,因為它是保留的。通過將塊大小乘以保留塊來計算保留空間,請參見下一步。
接下來,您可以檢查從計數中排除了多少文件。首先使用 . 確認您的分區的塊大小
tune2fs
。tune2fs -l /dev/xvda1 | grep "Block size"
大多數分區使用 4096 字節或 4 Kb 的預設塊大小。
接下來,在您的分區上查找大小不超過 4 Kb 的文件,因此不計算在內。我們可以這樣做
find
:find / -size -4k | wc -l
列印的最後一行將是找到的文件數。由於每個文件至少佔用一個塊,我們可以通過將塊大小乘以文件總數來計算使用的磁碟空間。假設一共有1083357個文件;
1083357 x 4 = 4333428 Kb (4.333428 Gb)
當然,除非您使用的是其他作業系統 :)