変数の理解

次の節を参照してください。


変数を使用する理由

Server Managementで変数を使用することによって、さまざまなパス情報をより簡単に管理できるので時間を節約できます。たとえば、すべてのサーバの同じ場所に対する変更をグローバルに制御するには、スクリプト内のすべてのボリュームやドライブを表す変数を使用できます。

この情報として変数を使用することによって、スクリプト内で各サーバの名前とそのボリュームやドライブを個々にリストする必要がなくなりました。

変数を使用することによって、個々のサーバやサーバ上のソフトウェアに固有なものの参照が容易になります。たとえば、次のように入力します。

   サーバ名
   対象ボリュームまたはドライブ
   作業ディレクトリ
   DNS名
   IPアドレス
   変更するテキストファイルの名前
   実行するスクリプトの内容

これらはサーバごとに異なるデータである場合があります。変数によって、これらの違いを容易に処理できます。


変数の使用


変数の構文

変数は、名前、値、および使用の3つの部分を持つと考えることができます。それぞれの構文は次のとおりです。

名前の構文: variable_name

例 DEST

値の構文: value_of_variable

例 sys:

使用の構文: %variable_name%

例 %DEST%

したがって、変数DESTはこの変数が定義されている特定のサーバではsys:と同一と見なされます。

変数を定義する場合、変数の名前や値に%記号は指定しません。ただし、変数を使用するときには、名前の前後に%記号を使用します。

ソフトウェアでは、%記号を使用して変数名の先頭と最後を識別します。たとえば、次のように入力します。

  1. %DEST%はソフトウェアにDESTが変数名であることを通知します。
  2. ソフトウェアは受信側のサーバ上の変数定義テーブルでDESTを検索し、その値を見つけます。
  3. その値を使用して、パスの指定が完了します。


ネストされた変数

変数は任意のレベルでネストできます。たとえば、次のようにして対象の指定を自動化できます。

  1. DESTを対象ボリュームおよびディレクトリとして定義します。
    • 変数名: DEST

    • 値: %VOL_DRV%%DIR%

      ここで、DEST内に2つの変数をネストして値を設定しています。

    • 使用方法: %DEST%

  2. NetWare Subscriberで、VOL_DRV変数を定義します。
    • 変数名: VOL_DRV

    • 値: 属性

      たとえば、data:と指定します。

    • 使用方法: %VOL_DRV%

  3. NetWare Subscriberで、VOL_DRV変数を定義します。
    • 変数名: VOL_DRV

    • 値: 属性

      インストールされません。

    • 使用方法: %VOL_DRV%

  4. DIR変数を定義します。
    • 変数名: DIR

    • 値:  属性

      \appsなどのディレクトリを指定します。

    • 使用方法: %DIR%

この結果、対象を単にDESTと指定することができ、この変数は各ターゲットサーバで指定されているディレクトリとボリュームまたはドライブに解決されます。たとえば、次のように入力します。

NetWare Subscriber:    data:\apps

Windows Subscriber:    c:\apps


リテラル%記号

%記号は、ファイル名やディレクトリ名で有効な文字です。したがって、リテラル文字としての%記号の使用を区別する必要があります。この区別を行わないと、ソフトウェアはネストされた変数名が指定されていると認識します。

リテラル文字の%を区別するには、変数の値に使用されている%記号の直前にもう1つ%記号を追加します。これによって、ソフトウェアは%記号を変数の指示子ではなく、リテラル文字として認識します。たとえば、次のように入力します。

変数名: DEST

変数のパス: temp%abc%xyz

変数の値: temp%%abc%%xyz

最初の%によって、ソフトウェアは次の%記号がパス名のリテラル部分であり、ネストされた変数名が続くことを示す指示子ではないことを認識します。2つ連続した%記号がない場合、"abc"はネストされた変数名として解釈されます。


変数の使用方法の違い

Tiered Electronic Distributionポリシーでの変数の定義など、一般的な変数の定義では、何も定義されていないSubscriber用のデフォルトの変数値が用意されています。Subscriberオブジェクトで定義された変数は、このようなデフォルトの変数値を上書きします。

Server Software Packagesの場合、変数名の解決方法が異なります。

  1. 変数がServer Software Packageコンポーネントで定義された変数である場合は、その値が使用されます。

    重要:  ソフトウェアパッケージで定義された変数は、Subscriberで定義されたすべての値を上書きします。

  2. 変数が定義済みの変数である場合は、その値が使用されます。
  3. 変数がJava環境変数である場合は、その値が使用されます。


使用する変数を決定する際の優先順位

使用する変数を決めるために、変数は特定の順序で確認されます。順序は次のとおりです。

  1. Server Software Packages 1
  2. Subscriberオブジェクト 1
  3. Tiered Electronic Distributionポリシー 1
  4. デフォルト変数 2
  5. 環境変数 2

1 Server Managementでユーザ定義
2 定義済み

変数は、最初に見つかった場所から使用されます。


Distributionの変数の例

変数を使用して、フルパスなど、Distributionを抽出する場所を指定することもできます。

たとえば、20のSubscriberがある単一のDistributionがあるとします。このDistributionを、Subscriberの各サーバ上の特定のボリュームに抽出するとします。ただし、ボリューム名はサーバによって異なり、15台のサーバではdata:ボリュームを使用しており、5台ではvol1:を使用しています。

これらのSubscriberの一部ではDistribution Volume変数を編集して、vol1:を使用している5台のSubscriber上の[Resolve To]フィールドをdata:からvol1:に変更します。

このDistributionを抽出すると、20台のサーバのそれぞれにおいて適切なボリュームに抽出されます。