Linux
意外的空間消耗
我有個問題。我總是用完磁碟空間。我不確切知道哪些文件佔用了所有空間。似乎有一堆小文件,所以很難用
du
命令找到。每次我找到要擺脫的東西以獲得一些可用空間(郵件、日誌、舊檔案和 rpms)時,一段時間後磁碟又滿了。系統分區 (/) 中的空間被盜。命令結果df
:Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 4061540 3848404 3492 100% / /dev/sda3 4061572 2441348 1410576 64% /home tmpfs 517636 0 517636 0% /dev/shm /dev/sdb1 10317828 1894904 7898808 20% /var/lib/mysql
在這種情況下你會推薦什麼?
如果您還可以在遇到過多或意外的空間消耗時列舉一個案例列表,那就太好了。它可能有助於解決問題
作業系統:CentOS 5。
這是我的標準“找到正在吃空間的東西”制度:
du -hx --max-depth=1 /
- 尋找正在吞噬空間的東西。檢查最大的子目錄(比如du -hx --max-depth=1 /var
),直到找到一些佔用空間的東西。日誌(in/var/log
)是常見的罪魁禍首(您應該使用 logrotate 處理),yum 喜歡保留的垃圾(重新打包的 RPM)也是如此。如果您可以辨識任何屢犯者,請找出一種方法來自動化您正在進行的任何維護工作以重複清理。lsof -n |grep deleted
– 查找已刪除的大文件。確定哪個程序使它們保持打開狀態,如果可以的話,殺死它或告訴它回收它的句柄(如果它們是日誌文件,kill -HUP <pid>
通常會做到這一點)。- 我的第三條攻擊線是調整分區大小或將新分區分配給各種掛載,儘管在您的情況下,因為您沒有使用 LVM,所以這很棘手。考慮進行維護以變成
/dev/sdb1
VG 並從那里分配。- 升級。磁碟空間非常便宜,如果您花一個小時的時間尋找導致空間消耗的原因,您只是“花費”了購買新硬碟所需的時間,因此購買新驅動器而不是花太多時間尋找問題。