[index] CentreCOM 8948XL コマンドリファレンス 2.9

# 運用・管理/スクリプト

スクリプト機能は、あらかじめファイルに記述された一連のコマンドを一括して実行する機能です。スクリプトは設定情報の保存に使うほか、頻繁に行う一連の処理をまとめたシェルスクリプト/バッチファイル的な使い方をしたり、トリガー機能と組み合わせてイベント発生時になんらかの処理を自動実行させたりと、工夫次第でさまざまな用途が考えられる便利な機能です。
スクリプトファイルは拡張子が.scpか.cfgのファイルで、内容はスイッチの管理コマンドを列挙したテキストファイルです。慣例として、.cfgは設定情報を保存する設定スクリプト、.scpはバッチファイル的なスクリプトに使われますが、絶対的な区別はありません。
■ スクリプトファイルを作成するには、次の方法があります。

- 内蔵スクリーンエディター（EDITコマンド）で作成・編集する

  `EDIT myscript.scp ↓`
- ADD SCRIPTコマンド、SET SCRIPTコマンドでコマンドラインから作成する。

  `ADD SCRIPT=simple.scp TEXT="show file" ↓`
- LOADコマンドを使って別のコンピューター上で作成したファイルをダウンロードする。

  `LOAD METHOD=TFTP FILE=basic.scp SERVER=192.168.1.3 DEST=FLASH ↓`

■ スクリプトは次のときに実行されます。

- コマンドラインからACTIVATE SCRIPTコマンドを実行したとき

  `ACTIVATE SCRIPT=gogo.scp ↓`
- スイッチの起動時（SET CONFIGコマンドで指定された起動スクリプトが読み込まれ実行される）
- トリガーから呼び出されたとき

なお、boot.cfgという名前のスクリプトは特殊で、もし存在していれば起動時に自動実行されます（ただし、SET CONFIGコマンドで起動時設定ファイルが指定されていないとき）。
また、autoexec.scpという名前のスクリプトファイルが存在している場合、Userレベルのユーザーがログインした直後に同ファイルの内容が自動的に実行されます。Managerレベル、Security Officerレベルのユーザーがログインしたときには実行されません。
■ スクリプト内の各行を実行するときは、一行実行するごとに短いウェイトが入ります。これは、スクリプトの実行がシステム本来の動作に与える影響を少なくするためです。なお、boot.cfgだけはウェイトなしで実行されます。
■ スクリプトが出力した文字列は、通常端末画面に出力されます。boot.cfgだけは特別で、デフォルトではログに出力されるよう設定されています。
また、ACTIVATE SCRIPTコマンドでスクリプトを実行するときは、OUTPUT=LOGを指定することにより、出力をログに送ることができます。

> Note - ただし、スクリプトが出力するログメッセージのログレベルが2（DETAIL）であるため、デフォルト設定ではシステムログには記録されません。

■ スクリプトには最大8つまで引数を与えることができます。
コマンドラインから実行するときは、次のように指定します。

`ACTIVATE SCRIPT=getargs.scp arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 ↓`

スクリプト中では、引数1（arg1）〜8（arg8）を変数%1〜%8として参照できます。これらの変数はスクリプトの実行直前に実際の値に置き換えられます。
また、スクリプト中ではグローバルな特殊変数として次の4つを使用できます。

表 1：スクリプトの特殊変数
変数名 | 内容
%D | システム日付。dd-mmm-yyyyの形式
%T | システム時刻。hh:mm:ssの形式
%N | システム名。SET SYSTEM NAMEコマンドで設定したもの
%S | シリアル番号。SHOW SYSTEMコマンドで表示されるものと同じ

トリガーからスクリプトが呼び出されるときは、トリガーの種類によって異なる種類の引数が自動的に渡されます。たとえば、スイッチモジュールのリンクアップ・ダウントリガーは、第1引数（%1）としてスイッチポートの番号をスクリプトに渡します。詳細は「運用・管理」/「トリガー」、および、各モジュールトリガーの説明箇所をご覧ください。
■ スクリプト内では、条件分岐構文IF THEN ELSE ENDIFを使用できます。

    IF string1 {EQ|NE} string2 THEN
      commands...
    ELSE
      commands..
    ENDIF

ELSE節は省略できます。
EQ、NEは文字列比較演算子で、それぞれ等しい、等しくないを示します。比較時には大文字小文字が区別されないのでご注意ください。条件判断の結果が真であればTHEN節が、偽であればELSE節（存在する場合。ないときはIF THEN ENDIFのあとに飛ぶ）が実行されます。
■ スクリプトの中でだけ使用できるコマンドにWAITコマンドがあります。これは指定した秒数だけ待機するものです。

`WAIT 5 ↓`

■ スクリプトファイルの内容を確認するには、SHOW SCRIPTコマンドを使います。

`SHOW SCRIPT=myscript.scp ↓`

(C) 2004 - 2008 アライドテレシスホールディングス株式会社

PN: J613-M0021-12 Rev.L