IFS内のファイルを整理する為に情報収集する良い方法はありませんか?
Question
WRKLNKでIFS内のフォルダーやそのフォルダー内にあるファイルを確認し、不要と思われるファイルを定期的に削除したいと思っています。
しかし、いつ作成したのか所有者が誰なのかの情報を確認しないと削除してよいのか判断できません。
IFS内のファイル情報(日付や所有者)を一覧で表示する方法はありませんか。
RTVDIRINF(ディレクトリー情報の検索)と PRTDIRINF(ディレクトリー情報の印刷)コマンドの実行よりも、もっと簡単な方法はありませんでしょうか。
Answer
IFS内のディレクトリーやファイル情報を表示するには、「IFS_OBJECT_STATISTICS 表関数」を使用する事で可能です。
「IFS_OBJECT_STATISTICS 表関数」
https://www.ibm.com/docs/ja/i/7.5?topic=services-ifs-object-statistics-table-function
※この表関数使用の前提グループPTFレベル(OS毎のグループPTF DB2 for IBM i レベル)
SF99950 Level 4 | → | V7.5 DB2 for IBM i |
SF99704 Level 13 | → | V7.4 DB2 for IBM i |
SF99703 Level 16 | → | V7.3 DB2 for IBM i |
→ グループPTFレベルは WRKPTFGRP コマンドでご確認ください。 |
下記からのSQLはIBM i Access Client Solutions(ACS)の「SQLスクリプトの実行」例になります。
※SQL例1:ディレクトリー内のサブ・ディレクトリーやファイルの所有者とタイムスタンプを表示します。
SELECT PATH_NAME, OBJECT_TYPE, DATA_SIZE, OBJECT_OWNER, CREATE_TIMESTAMP
FROM TABLE (QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => '/Btest',
SUBTREE_DIRECTORIES => 'NO'));
サブ・ディレクトリー内まで表示するには SUBTREE_DIRECTORIES => 'YES' を指定してください。
※SQL例2:サブ・ディレクトリーを含めてサイズ順に表示します。
SELECT PATH_NAME, OBJECT_TYPE, DATA_SIZE, OBJECT_OWNER, CREATE_TIMESTAMP
FROM TABLE (QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => '/Btest',
SUBTREE_DIRECTORIES => 'YES')) ORDER BY DATA_SIZE DESC;
※SQL例3:サブ・ディレクトリーを含めてタイムスタンプ順に表示します。
SELECT PATH_NAME, OBJECT_TYPE, DATA_SIZE, OBJECT_OWNER, CREATE_TIMESTAMP
FROM TABLE (QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => '/Btest',
SUBTREE_DIRECTORIES => 'YES')) ORDER BY CREATE_TIMESTAMP ASC;
各例のSQLを実行する事で、ファイルの要/不要の判断をして頂ければと思います。
もしACSのSQL実行結果をEXCELへ変換する場合には、下記サイトをご参照ください。
「ACSのSQL実行結果をダウンロードしたい」
https://www.e-bellnet.com/category/technology/2212/2212-02.html
by . あすと