include-exclude オプション処理
IBM® Storage Protect サーバーは、クライアント・オプション・セットの inclexcl パラメーターを使用して、include-exclude オプションを定義することができます。
サーバーで指定された include-exclude ステートメントは、クライアント・オプション・ファイル内のステートメントで評価されます。 サーバーの包含/除外ステートメントは必ず実行され、 include-exclude リストの下部に置かれて、クライアントの包含/除外ステートメントより前に評価されます。
クライアント・オプション・ファイルの include-exclude リストに、include-exclude ファイルを指定する 1 つ以上の inclexcl オプションが含まれている場合、これらのファイル内の include-exclude ステートメントは、 inclexcl オプションが占有するリスト位置に置かれ、適宜処理されます。



dsm.sys ファイルの include-exclude リストに、include-exclude ファイルを指定する 1 つ以上の inclexcl オプションが含まれている場合、これらのファイル内の include-exclude ステートメントは、 inclexcl オプションによって占有されるリスト位置に置かれ、適宜処理されます。
大規模な include-exclude リストを処理すると、バックアップの効率が低下することがあります。 このリストをできるだけ小さくするために、ワイルドカードを使用して、不要な include ステートメントを除去してください。
増分バックアップを実行する場合、クライアントは最初にすべての exclude.dir ステートメントを評価し、除外されたディレクトリーおよびファイルを処理に使用可能なオブジェクトのリストから除去します。



増分バックアップの実行時に、クライアントは最初にすべての exclude.fs および exclude.dir ステートメントを評価し、処理に使用可能なオブジェクトのリストから除外されたファイル・スペース、ディレクトリー、およびファイルを除去します。
すべての exclude.dir ステートメントを評価した後、クライアントは include-exclude リストをボトムアップで評価し、処理中のファイルと一致する包含/除外ステートメントを検出すると停止します。 したがって、包含および除外オプションが入力される順序は、どのファイルを包含および除外するかに影響します。



すべての exclude.fs および exclude.dir ステートメントを評価した後で、 クライアントは、シンボリック・リンクまたは別名処理 (exclude.attribute.symlink および include.attribute.symlink) を制御するために include-exclude ステートメントをボトムアップで評価し、処理中のファイルに一致する包含/除外ステートメントを検出すると停止します。 シンボリック・リンクまたは別名処理を
制御するための include-exclude ステートメントを処理した後、クライアントは、残りの include-exclude リストをボトムアップ評価し、処理するファイルと一致する包含または除外ステートメントを
見つけると停止します。 したがって、包含および除外オプションが入力される順序は、どのファイルを包含および除外するかに影響します。
クライアント・ワークステーションに、すべての include-exclude ステートメントのリストを、実際の処理順序で効果的に表示するには、query inclexcl コマンド を使用します。
クライアント・プログラムは、以下の規則に従って包含/除外ステートメントのリストを 処理します。
- ファイルがチェックされます。(ディレクトリーは、exclude.dir オプションが指定されている場合にのみチェックされます。)
- ファイル名が、include-exclude リストのパターンに突き合わせて下から順に比較されます。 一致が見つかると、処理は停止し、オプションが include と
exclude のどちらであるかが検査されます。 このオプションが include の場合、このファイルはバックアップされます。 オプションが、exclude の場合、このファイルは、バックアップされません。注: 一致が見つからない場合、ファイルは暗黙的に組み込まれ、バックアップされます。
- ファイルがバックアップされるとき、それが、デフォルトではない管理クラス名を指定した include ステートメントと一致しない場合は、デフォルトの管理クラスにバインドされます。一致している場合は、ファイルはその管理クラスにバインドされます。




- 例 1
La Pommeが始動ディスクでないことを想定しています。EXCLUDE /.../*.cpp INCLUDE "/Volumes/La Pomme/Foo/.../*.cpp" EXCLUDE "/Volumes/La Pomme/Foo/Junk/*.cpp"処理されるファイルは、
/Volumes/La Pomme/Foo/Dev/test.cppです。 処理は、以下のように行われます。- ボトムアップ処理により、最初に、規則 3 (最後に定義されている include か exclude) が検査されます。 パターン
/Volumes/La Pomme/Foo/Junk/*.cppは、処理中のファイル名と一致しません。 - 処理は、規則 2 に移り、検査されます。 今度は、パターン
/Volumes/La Pomme/Foo/.../*.cppは、処理されるファイル名と一致します。 処理は停止し、オプションが検査されて包含されます。 - ファイル
/Volumes/La Pomme/Foo/Dev/test.cppがバックアップされます。
- ボトムアップ処理により、最初に、規則 3 (最後に定義されている include か exclude) が検査されます。 パターン
- 例 2
La Pommeが始動ディスクでないことを想定しています。EXCLUDE /.../*.cpp INCLUDE "/Volumes/La Pomme/Foo/.../*.cpp" EXCLUDE "/Volumes/La Pomme/Foo/Junk/*.cpp"処理されるファイルは、
/Volumes/La Pomme/Widget/Sample Fileです。 処理は、以下のように行われます。- 規則 3 が検査され、一致が検出されません。
- 規則 2 が検査され、一致が検出されません。
- 規則 1 が検査され、一致が検出されません。
- 一致するものが見つからないため、
Volumes/La Pomme/Widget/Sample Fileは暗黙的に組み込まれ、バックアップされます。
- 例 3
- include および exclude オプション
に以下のステートメントを定義したとします。
exclude *.o include /home/foo/.../*.o exclude /home/foo/junk/*.o処理されるファイルは、
/home/foo/dev/test.oです。 処理は、以下のように行われます。- ボトムアップ処理により、規則 3 (最後に定義されているステートメント) が最初に検査されます。 パターン
/home/foo/junk/*.oは、処理されるファイル名とは一致しません。 - 処理は、規則 2 に移り、検査されます。 今度は、パターン
/home/foo/.../*.oは、処理されるファイル名と一致します。 処理は停止し、オプションが検査されて include であると判別されます。 - ファイル
/home/foo/dev/test.oがバックアップされます。
- ボトムアップ処理により、規則 3 (最後に定義されているステートメント) が最初に検査されます。 パターン
- 例 4
- include および exclude オプション
に以下のステートメントを定義したとします。
exclude *.obj include /home/foo/.../*.o exclude /home/foo/junk/*.o処理されるファイルは、
/home/widg/copyit.txtです。 処理は、以下のように行われます。- 規則 3 が検査され、一致が検出されません。
- 規則 2 が検査され、一致が検出されません。
- 規則 1 が検査され、一致が検出されません。
- 一致が検出されないので、ファイル
/home/widg/copyit.txtは暗黙的に包含され、バックアップされます。
- 例 5
- include および exclude オプション
に以下のステートメントを定義したとします。
exclude /.../*.o include /home/foo/.../*.o exclude /home/foo/junk/*.o処理されている現行ファイルは
/home/lib/objs/printf.oです。 処理は、以下のように行われます。- 規則 3 が検査され、一致が検出されません。
- 規則 2 が検査され、一致が検出されません。
- 規則 1 が検査され、一致が検出されました。
- 処理は停止し、オプションが検査されて除外されます。
- ファイル
/home/lib/objs/printf.oはバックアップされません。
- 例 6
- include および exclude オプション
に以下のステートメントを定義したとします。
exclude.attribute.symlink /.../* exclude /.../*.o include /home/foo/.../*.o exclude /home/foo/junk/*.o処理される現行ファイルは、 /home/lib/objs/printf.o です。 処理は、以下のように行われます。
- exclude.attribute.symlink ステートメントが最初に検査されます。 printf.o ファイルがシンボリック・リンクである場合は、そのファイルを除外します。それ以外の場合は次のステップに進みます。 exclude.attribute.symlink ステートメントは、include-exclude リストでの位置にかかわらず、必ず他の include-exclude ステートメントより前に処理されます。
- 規則 3 が検査され、一致が検出されません。
- 規則 2 が検査され、一致が検出されません。
- 規則 1 が検査され、一致が検出されました。
- 処理は停止し、オプションが検査されて除外されます。
- ファイル /home/lib/objs/printf.o はバックアップされません。

- 例 1
- include および exclude オプション
に以下のステートメントを定義したとします。
exclude ?:\*.obj include c:\foo\...\*.obj exclude c:\foo\junk\*.obj処理されるファイルは、
c:\foo\dev\test.objです。 処理は、以下のように行われます。- ボトムアップ処理により、規則 3 (最後に定義されているステートメント) が最初に検査されます。 パターン
c:\foo\junk\*.objは、処理されるファイル名とは一致しません。 - 処理は、規則 2 に移り、検査されます。 今度は、パターン
c:\foo\...\*.objは、処理されるファイル名と一致します。 処理は停止し、オプションが検査されて包含されます。 - ファイル
c:\foo\dev\test.objがバックアップされます。
- ボトムアップ処理により、規則 3 (最後に定義されているステートメント) が最初に検査されます。 パターン
- 例 2
- include および exclude オプション
に以下のステートメントを定義したとします。
exclude ?:\*.obj include c:\foo\...\*.obj exclude c:\foo\junk\*.obj処理されるファイルは、
c:\widg\copyit.batです。 処理は、以下のように行われます。- 規則 3 が検査され、一致が検出されません。
- 規則 2 が検査され、一致が検出されません。
- 規則 1 が検査され、一致が検出されません。
- 一致が検出されないので、ファイル
c:\widg\copyit.batは暗黙的に包含され、バックアップされます。
- 例 3
- include および exclude オプション
に以下のステートメントを定義したとします。
exclude ?:\...\*.obj include c:\foo\...\*.obj exclude c:\foo\junk\*.obj処理されている現行ファイルは
c:\lib\objs\printf.objです。 処理は、以下のように行われます。- 規則 3 が検査され、一致が検出されません。
- 規則 2 が検査され、一致が検出されません。
- 規則 1 が検査され、一致が検出されました。
- 処理は停止し、オプションが検査されて除外されます。
- ファイル
c:\lib\objs\printf.objはバックアップされません。