IBM i のファイルシステムは大別して ライブラリー と IFS
IBM i のファイルシステムは以下の2つに分類されます。2.はさらに細かく分類できますが省略しています。
- ライブラリーベースのファイルシステム
WRKLNKコマンドで /QSYS.LIB以下に表示されるファイル・ディレクトリーです。
IBM i OSのWRKLIBコマンドで表示されるライブラリーと同一で、S/38やAS/400以来存在するRPG,COBOL,Db2 for iの物理ファイル(テーブル)等,各種待ち行列(MSGQ, OUTQ,etc.),ユーザープロフィール、コンパイラー等のシステムオブジェクトが含まれます。 - (狭義の)IFSファイルシステム
1.のライブラリー以外のファイル・ディレクトリです。WRKLNKコマンドでルート'/'直下や/QSYS.LIB以外のファイル・ディレクトリーが該当します。
ちなみにIFS(統合ファイルシステム)には2つの意味合いがあります。狭義には2.のライブラリーでないファイル・ディレクトリを指します。
広義には1.と2.を併せたIBM i のファイルシステム全体をIFSと呼ぶこともあります。ここでは主に2.狭義のIFSについて説明します。
IFSとは?
※IFS=Integrated File System の略で、AS/400 V1時点ではライブラリーベースのファイルシステムとそれ以外のファイルシステム(例:PCサポート共用フォルダー等、現在は狭義のIFS下に統合済み)は別々なファイルシステムとして実装されており、現在のIFSのように '/'ルート配下で統一したアクセス方法がありませんでした。それを '/'配下に統合して1つのファイルシステムとして操作可能としたことからIFSと呼ばれるようになりました。
IFSオブジェクトのサイズ確認方法(レガシーな)
上記の1.についてはDSPOBJDコマンド等でオブジェクト(ファイル)のサイズを容易に確認、リスト作成等できますが、2.の狭義のIFSについてはこれまではGO DISKTASKSメニューの1番からバッチでファイル・ディレクト情報を収集して、収集完了後に上記メニューの2番で印刷スプールとしてリスト出力する方法が基本でした。
GO DISKTASKSメニュー
IBM i 7.x以降でのIFSオブジェクトサイズ確認方法(SQLで)
IBM i 7.x ではACSのSQLスクリプトサンプルにIFSのファイルサイズを調べるサンプルが提供されています。こちらをご紹介します。
■ACS SQLサンプルのIFSファイルサイズ出力方法
-
ACSのSQLスクリプトの実行 を開く
-
SQL実行画面にサンプルがコピーされるので、ウィンドウ上部の すべて実行アイコン をクリック。
数個のSQLが順番に実行されます。このときIFSのファイル情報がIFSINFOライブラリーのIFSINFO2D, IFSINFO2O に格納されます。
5.コピーされたSQLサンプルには STOP という行が挿入されており、その行でSQLの実行は停止します。ここまででIFSの情報取得が完了しています。
STOPの下にもうひとつ、SELECT文がコピーされています。
以下のSELECT文が上記2つのテーブルに格納されたIFSファイル菜情報を検索するサンプルになっています。必要に応じてSQL文を修正できます。
6.このSELECT文を実行すると下記のような結果が出力されます♪
SELECT文ですので、対象ファイルのタイプや、ディレクトリ、サイズなど様々に条件指定できますし即時実行できますので、従来のGO DISKTASKSメニューから検索するよりもずっと利便性が高いと思います。
このようにIBM i のここ最近はSQLが色々と便利に拡張されています。