Ibm-Midrange

如何有效地找到哪些文件夾正在填滿硬碟?小號_/400○小號/400OS/400

  • October 27, 2009

V5R3,我確實可以訪問 PASE 環境

磁碟空間報告顯示使用者目錄佔用了系統磁碟的 76%。不幸的是,在目錄上加上“8”並不能給出遞歸大小估計。

是否有任何其他命令或 IBM 實用程序可以有效地獲取此資訊,以便我們可以發現哪個文件夾正在消耗磁碟空間?系統已經在爬行,我寧願不要讓它停下來嘗試診斷它。

IBM 提到了以下 PASE 實用程序:

CALL QP2TERM

find /qibm/proddata -type f -size +20000 -exec ls -lH {} \; | awk '{ print $9 ": " $5 }'

但它(到目前為止)只返回了大約 3-4 GB 的文件,這讓我相信是成千上萬的小文件導致系統緊張。

最壞的情況,我明天將使用 QSH CMD(’ls -R / >> /QSYS.LIB/QGPL.LIB/QSHOUT.FILE/QSHOUT.MBR’) 執行 SBMJOB,然後將其放在 QSYSNOMAX 中,優先級較低.

首先,IBM關於該主題的知識庫值得一讀。

其次,這裡有一個巨大的誤解。在 IFS 文件夾上放置8以查看其屬性時,“磁碟大小”屬性是 IFS“文件夾”對象的大小,除了其任何內容。因此,我們懷疑的文件夾大小顯示為 83 886 080 字節:80 兆字節。如果它是遞歸計算的,這還不錯,但這只是文件夾對象本身!一旦明確了這一點,解決方案就很簡單了;使用 DEL 命令清除有問題的目錄,其中包含大約 75 GB 的對象。

一種推導 IFS 目錄遞歸大小的方法是將2放在其父目錄上,然後將6放在相關目錄對像上;產生的數字將用於文件夾對象和包含的所有對象,包括子文件夾及其對象。

RTVDIRINF 和 PRTDIRINF 命令也可能有用,儘管在我的例子中我不需要它們。

我的同事對這些有幾點說明:

這些命令為每次執行生成不同的文件——輸出應該帶有一些有意義的前綴;頂級目錄或類似目錄。PRTDIRINF 有一個 *DIR 選項,它列出了每個目錄使用的空間。可能可以執行這樣的查詢以獲得更快的概覽:

SELECT sum(QEZALCSIZE), sum(QEZDTASIZE) FROM homeo

這將給出目錄 /home 中的總大小。

這是一個更有用的範例,針對每個目錄的結果執行。

SELECT sum(O.QEZALCSIZE), D.QEZDIRNAM1, D.QEZDIRIDX FROM homed d join homeo o on d.qezdiridx = o.qezdiridx GROUP BY d.qezdiridx, qezdirnam1 ORDER BY 1 desc, 3, 2

然後,您可以使用 UNION SELECT 將它們組合起來以掌握全域:

SELECT sum(QEZALCSIZE), QEZDIRNAM1, homeD.QEZDIRIDX FROM homed join homeo on homed.qezdiridx = homeo.qezdiridx GROUP BY homed.qezdiridx, qezdirnam1 UNION SELECT sum(QEZALCSIZE), QEZDIRNAM1, etcD.QEZDIRIDX FROM etcd join etco on etcd.qezdiridx = etco.qezdiridx GROUP BY tcd.qezdiridx, qezdirnam1 ORDER BY 1 desc, 3, 2

一個常見的罪魁禍首是這個目錄:

/QIBM/UserData/OS400/MGTC/服務

如果此文件夾非常大,請按照IBM 的說明將其關閉(除非您有特定原因將其打開),然後按上述方式清除該目錄。

最後,Midrange 郵件列表檔案和相應的wiki在他們的領域也是極好的資源。SQL 範例和有關管理中心跟踪的說明均來自 Midrange 郵件列表上的交流。

哇,我接觸 AS/400 已經好幾年了,而且我還沒有類似 Unix 的命令。

您問題中的find命令僅搜尋大文件而不是大目錄(大量小文件)。

而不是find命令,請嘗試:

du /qibm/proddata | sort -n

如果可行,該列表的底部將是該層次結構下最大的目錄。

您還可以嘗試對find您列出的查看目錄大小的命令進行變體:

find /usr/share -type d -size +20000 -exec ls -lHd {} \; | awk '{ print $9 ": " $5 }'

您可以嘗試不同的尺寸作為您的門檻值。您的空間可能被/qibm/proddata.

不幸的是,我已經忘記了很多關於 AS/400 的知識。

引用自:https://serverfault.com/questions/77405