IFSの容量を確認するコマンド
Question
WRKSYSSTSで全体のディスク容量を確認しています。
RTVDSKINF/PRTDSKINFで容量の大きいライブラリーはファイルを削除してみましたが、思ったほど使用量が下がりませんでした。
今度はIFSの容量を確認したいと考えていますが、ディレクトリー毎に容量を確認するコマンドはないでしょうか。
Answer
RTVDIRINF/PRTDIRINFコマンドはいかがでしょうか。
各ディレクトリー配下のオブジェクトやサイズを確認する事ができます。
但し、IFS全体の情報を取得しようとすると、時間を要したりCPUに負荷が掛かります。
業務時間外など影響の少ない時間帯に行う事をお勧めします。
また、そのまま実行すると対話型のジョブになってしまいますので、SBMJOBコマンドで実行してください。
RTVDIRINFコマンドを実行すると、「xxxO」「xxxD」というデータがオブジェクト・タイプ*FILE、属性PF-DTAとして書き出されます。
(※ xxxはパラメータINFFILEPFXの接頭部です。)
以下の実行例では、調査用にライブラリーを作成してここにデータが書き出されるようにし、テスト用に作成したディレクトリーの情報を収集しています。
- 調査用のライブラリーを作成
- テスト用のディレクトリー /home/testdir の情報を収集
- 収集したデータを出力
CRTLIB LIB(IFSCHK)
SBMJOB CMD(RTVDIRINF DIR('/home/testdir') INFFILEPFX(IFSCHK_) INFLIB(IFSCHK))
→ 「IFSCHK_O」と「IFSCHK_D」という名前でデータが書き出されました。
SBMJOB CMD(PRTDIRINF RPTTYPE(*DIR) INFFILEPFX(IFSCHK_) INFLIB(IFSCHK))
→ 以下画像のようなスプールが出力されます。
/home/testdir配下に続くディレクトリーについてもリンク数やサイズが出力されます。
もちろん、ルート指定(/)をするとIFS全体の情報を取得できますが、先述の通り、全体のディレクトリー数・オブジェクト数が多いので、収集に長時間掛かりCPU使用率が上がります。
先ずは、上記例のように特定のディレクトリーに絞って試してみてはいかがでしょうか。
by 槻樹