マクロ コマンド

この章は、次の項で構成されています。

macro name

macro name グローバル コンフィギュレーション モード コマンドを使用すると、マクロを定義できます。定義できるマクロの種類は 2 つです。

  • グローバル マクロは、常時実行可能な CLI コマンドのグループを定義します。

    Smartport マクロは Smartport タイプに関連付けられています。各 Smartport マクロの場合、アンチマクロにする必要があります(no_ と連結した名前のマクロ)。アンチマクロはマクロのアクションを元に戻します。

この名前のマクロがすでに存在している場合、事前定義済みのマクロが上書きされます。

マクロ定義を削除するには、このコマンドの no 形式を使用します。

構文

macro name macro-name

no macro name [macro-name]

パラメータ

  • macro-name:マクロの名前。マクロ名では、大文字と小文字が区別されます。

コマンド モード

グローバル コンフィギュレーション モード

使用上のガイドライン

マクロは、CLI コマンドを含み、ユーザによって名前が割り当てられているスクリプトです。最大 3000 文字、200 行の文字を含めることができます。

キーワード

マクロにはキーワード(パラメータ)を含められます。キーワードの説明は次のとおりです。

  • マクロには、最大 3 つのキーワードを含めることができます。

  • キーワードに一致したすべての値が、macro コマンドで指定された対応する値に置き換えられます。

  • キーワードの一致では、大文字と小文字が区別されます

    キーワードを使用してマクロを適用しても、元のマクロ定義の状態は変更されません。

    ユーザ フィードバック

ユーザ フィードバックを求めるマクロ コマンドの動作は、コマンドを端末から開始した場合と同じです。端末にプロンプトを表示し、ユーザの応答を受け入れます。

マクロの作成

マクロを作成する場合は、次のガイドラインを順守します。

  • 名前を指定してマクロを作成するには、macro name を使用します。

  • 1 行に 1 つのマクロ コマンドを入力します。

  • マクロを終了するには、@ 文字を使用します。

  • マクロにコメントを入力する場合は、行頭に # 文字を指定します。

    さらに、マクロ内でのみ使用できる特定のプリプロセッサ コマンドを特定する場合も # を使用します。利用可能なプリプロセッサ コマンドは 2 つあります。

    #macro key description:マクロごとに最大 3 つのキーワードと説明のペアを使用して設定できます。キーワードおよび説明は、マクロが表示されている場合、GUI ページに表示されます。

    このプリプロセッサ コマンドのシンタックスは次のとおりです。

    #macro key description $keyword1 description1 $keyword2 description2 $keyword3 description3

    キーワードの先頭には「$」を指定する必要があります。

    #macro keywords:この指示により、デバイスで CLI ヘルプの一部としてキーワードを表示できます。最大 3 つのキーワードを受け入れます。コマンドは、マクロでキーワードを指定して CLI ヘルプ文字列を作成します。ヘルプ文字列は、macro および macro global コマンドからマクロのヘルプが要求された場合に表示されます。また、GUI は、コマンドで指定されたキーワードをマクロのパラメータ名としても使用します。CLI でのこのコマンドの使用方法については、例 2 および 例 3 を参照してください。

    このプリプロセッサ コマンドのシンタックスは次のとおりです。

    #macro keywords $keyword1 $keyword2 $keyword3

    keywordn はキーワードの名前です。

    マクロの編集

マクロは編集できません。既存のマクロと同じ名前の新しいマクロを作成して、マクロを変更します。新しいマクロにより、既存のマクロが上書きされます。

この例外には、Smartport 機能に組み込まれたマクロと対応するアンチマクロがあります。Smartport マクロを上書きすることはできません。

マクロの範囲

任意のユーザ定義マクロの範囲を考慮することが重要です。予期しない設定が適用される潜在的な危険があるため、exitend、または interface interface-id などのコマンドを使用してマクロ内でコンフィギュレーション モードを変更しないでください。いくつかの例外を除き、さまざまなコンフィギュレーション モードでマクロを実行する他の方法があります。マクロは、特権 Exec モード、グローバル コンフィギュレーション モード、インターフェイス コンフィギュレーション モードでも実行できます(インターフェイスが VLAN 以外の場合)。

例 1:次の例では、ポートのデュプレックス モードを設定するマクロを作成する方法を示します。

switchxxxxxx(config)# macro name dup
Enter macro commands one per line. End with the character ‘@’.
#macro description dup
duplex full
negotiation
@

例 2:次の例では、DUPLEX と SPEED パラメータを使用してマクロを作成する方法を示します。マクロを実行する場合、ユーザは DUPLEX と SPEED を指定する必要があります。#macro keywords コマンドにより、ユーザは例 3 のようにマクロのヘルプを受信できるようになります。

switchxxxxxx(config)# macro name duplex
Enter macro commands one per line. End with the character ‘@’.
duplex $DUPLEX
no negotiation
speed $SPEED
#macro keywords $DUPLEX $SPEED
@

例 3:次の例では、(上記の #macro keywords コマンドで定義したように)ヘルプ文字 ? を使用してキーワードを表示する方法を示し、ポートでマクロを実行します。マクロ定義で入力された #macro keywords コマンドにより、ユーザは、以下の e.g. の後に示すようにマクロのヘルプを受信できるようになります。

switchxxxxxx(config)# interface gi1/0/1
switchxxxxxx(config-if)# macro apply duplex ?
    WORD <1-32> 	 Keyword to replace with value e.g. $DUPLEX, $SPEED
    <cr>
switchxxxxxx(config-if)# macro apply duplex $DUPLEX ?
    WORD<1-32>	  First parameter value
    <cr>
switchxxxxxx(config-if)# macro apply duplex $DUPLEX full $SPEED ?
    WORD<1-32>	  Second parameter value
switchxxxxxx(config-if)# macro apply duplex $DUPLEX full $SPEED 100

macro

macro apply/trace インターフェイス コンフィギュレーション コマンドを使用すると、いずれかのことを実行できます。

  • 実行されるアクションを表示せずにマクロをインターフェイスに適用します

  • 実行されるアクションを表示しながらマクロをインターフェイスに適用します

構文

macro {apply | trace} macro-name [parameter-name1 value] [parameter-name2 value] [parameter-name3 value]

パラメータ

  • apply:特定のインターフェイスにマクロを適用します。

  • trace:特定のインターフェイスにマクロを追加およびトレースします。

  • macro-name:マクロの名前。

  • parameter-name value:マクロで定義された各パラメータに対してその名前と値を指定します。最高 3 つのパラメータ値の組み合わせを入力できます。パラメータ キーワードの照合では、大文字と小文字が区別されます。マクロのパラメータ名で一致が見られると、すべて対応する値に置き換えられます。

デフォルト設定

このコマンドには、デフォルト設定はありません。

コマンド モード

インターフェイス(イーサネット、ポート チャネル)コンフィギュレーション モード

使用上のガイドライン

macro apply コマンドにより、実行中はマクロのコマンドが非表示になります。macro trace コマンドにより、コマンドの実行中はコマンドによって生成されるエラーとコマンドが一緒に表示されます。これを使用すると、マクロをデバッグし、構文または設定のエラーを検出できます。

マクロを実行した場合、構文または設定のエラーが原因で失敗しても、マクロはインターフェイスに残りのコマンドを適用し続けます。

コマンド内にパラメータが含まれるマクロを適用する場合、このパラメータの値を指定しないと、コマンドは失敗します。macro apply macro-name で「?」を使用すると、マクロキーワードのヘルプ文字列を表示できます(#macro keywords プロセッサコマンドを使用してキーワードを定義している場合)。

パラメータ(キーワード)の照合では、大文字と小文字が区別されます。パラメータで一致が見られると、指定したすべての値に置き換えられます。キーワードが完全に一致すると、それが長い文字列の一部であったとしても一致と見なされて、対応する値に置き換えられます。

マクロをインターフェイスに適用すると、スイッチはマクロ名を付けたマクロ説明コマンドを自動的に生成します。その結果、マクロ名はインターフェイスのマクロ履歴に追加されます。show parser macro コマンドはインターフェイスのマクロ履歴を表示します。

インターフェイスの範囲に適用されたマクロは、単一インターフェイスに適用されたマクロと同じ動作をします。マクロがインターフェイス範囲に適用される場合、範囲内の各インターフェイスに連続して適用されます。マクロ コマンドが 1 つのインターフェイスで失敗すると、残りのインターフェイスに適用しようとしたかどうかに関係なく、失敗または成功することがあります。

例 1:次に、トレース オプションを指定してインターフェイスに適用するマクロの例を示します。

switchxxxxxx(config)# interface gi1/0/2
switchxxxxxx(config-if)# macro trace dup $DUPLEX full $SPEED 100
  Applying command…  ‘duplex full’
  Applying command…  ‘speed 100’
switchxxxxxx(config-if)# 

例 2:次に、トレース オプションを指定せずに適用するマクロの例を示します。

switchxxxxxx(config)# interface gi1/0/2
switchxxxxxx(config-if)# macro apply dup $DUPLEX full $SPEED 100
switchxxxxxx(config-if)# 

例 3:次に、正しくないマクロを適用している例を示します。

switchxxxxxx(config)# interface gi1/0/1
switchxxxxxx(config-if)# macro trace dup
Applying command...'duplex full'
Applying command...'speed auto'
% bad parameter value
switchxxxxxx(config-if)# 

macro description

macro description インターフェイス コンフィギュレーション モード コマンドを使用すると、マクロ名などの説明をインターフェイスのマクロ履歴に追加できます。インターフェイスのマクロ履歴をクリアするには、このコマンドの no 形式を使用します。マクロがインターフェイスに適用されると、スイッチはマクロ名を付けたマクロ説明コマンドを自動的に生成します。その結果、マクロ名はインターフェイスのマクロ履歴に追加されます。

構文

macro description text

no macro description

パラメータ

  • text:説明テキスト。このテキストには、最大 160 文字を含めることができます。テキストに複数の単語が含まれる場合、テキストを二重引用符で囲む必要があります。

デフォルト設定

このコマンドには、デフォルト設定はありません。

コマンド モード

インターフェイス(イーサネット、ポート チャネル)コンフィギュレーション モード

使用上のガイドライン

複数のマクロが 1 つのインターフェイスに適用されると、説明テキストは以前に適用したマクロの番号のテキストと連結されます。

switchxxxxxx(config)# interface gi1/0/2
switchxxxxxx(config-if)# macro apply dup
switchxxxxxx(config-if)# exit
switchxxxxxx(config)# interface gi1/0/3
switchxxxxxx(config-if)# macro apply duplex $DUPLEX full $SPEED 100
switchxxxxxx(config-if)# macro description dup
switchxxxxxx(config-if)# macro description duplex
switchxxxxxx(config-if)# end
switchxxxxxx(config)# exit
switchxxxxxx# show parser macro description
Global Macro(s):
Interface      Macro Description(s)
------------   --------------------------------------------------
gi1/0/2             dup
gi1/0/3             duplex | dup | duplex
--------------------------------------------------------------
switchxxxxxx# configure
switchxxxxxx(config)# interface gi1/0/2
switchxxxxxx(config-if)# no macro description
switchxxxxxx(config-if)# end
switchxxxxxx(config)# exit
switchxxxxxx# show parser macro description
Global Macro(s):
Interface      Macro Description(s)
---------      -----------------------------------------------------
gi1/0/3            duplex | dup | duplex
--------------------------------------------------------------

macro global

macro global グローバル コンフィギュレーション コマンドを使用すると、マクロをスイッチ(トレース オプションに関係なく)に適用できます。

構文

macro global {apply | trace} macro-name [parameter-name1 value] [parameter-name2 value] [parameter -name3 value]

パラメータ

  • apply:スイッチにマクロを適用します。

  • trace:スイッチにマクロを追加およびトレースします。

  • macro-name:マクロの名前を指定します。

  • parameter-name value:スイッチに必要なパラメータ値を指定します。最高 3 つのパラメータ値の組み合わせを入力できます。パラメータ キーワードの照合では、大文字と小文字が区別されます。パラメータで一致が見られると、対応する値にすべて置き換えられます。

デフォルト設定

このコマンドには、デフォルト設定はありません。

コマンド モード

グローバル コンフィギュレーション モード。

使用上のガイドライン

マクロを適用したとき、構文エラーまたは設定エラーのためにコマンドが失敗した場合、マクロは引き続き残りのコマンドをスイッチに適用します。

キーワードの照合では、大文字と小文字が区別されます。キーワードで一致が見られると、すべて対応する値に置き換えられます。キーワードが完全に一致すると、それが長い文字列の一部であったとしても一致と見なされて、対応する値に置き換えられます。

コマンド内にキーワードが含まれるマクロを適用する場合、このマクロを適用するときにキーワードに適切な値を指定しないと、コマンドは失敗します。このコマンドで「?」を使用すると、マクロ キーワードのヘルプ文字列を表示できます。マクロを定義する場合は、#macro keywords プロセッサ コマンドを使用してヘルプ文字列でキーワードを定義します。

マクロをグローバル コンフィギュレーション モードで適用すると、スイッチはマクロ名を付けたグローバル マクロ説明コマンドを自動的に生成します。その結果、マクロ名はグローバル マクロ履歴に追加されます。

次の例では、マクロを定義して、トレース オプションが指定されたスイッチに適用されています。

switchxxxxxx(config)# macro name console-timeout
Enter macro commands one per line. End with the character ‘@’.
line console
exec-timeout $timeout-interval
@
switchxxxxxx(config)# macro global trace console-timeout $timeout-interval 100
  Applying command…  ‘line console’
  Applying command…  ‘exec-timeout 100’

macro global description

macro global description グローバル コンフィギュレーション コマンドを使用すると、スイッチに適用されているマクロを示すために使用される説明を入力できます。説明を削除するには、このコマンドの no 形式を使用します。

構文

macro global description text

no macro global description

パラメータ

  • text:説明テキスト。このテキストには、最大 160 文字を含めることができます。

デフォルト設定

このコマンドには、デフォルト設定はありません。

コマンド モード

グローバル コンフィギュレーション モード

使用上のガイドライン

複数のグローバル マクロがスイッチに適用されると、グローバル説明テキストは以前に適用したマクロの番号のテキストと連結されます。

switchxxxxxx(config)# macro global description "set console timeout interval"

show parser macro

設定されているすべてのマクロ、またはスイッチ上の 1 つのマクロのパラメータを表示するには、show parser macro ユーザ EXEC モードコマンドを使用します。

構文

show parser macro [{brief | description [interface interface-id | detailed] | name macro-name}]

パラメータ

  • brief:すべてのマクロの名前を表示します。

  • description [interface interface-id]すべてのインターフェイスのマクロの説明を表示するか、またはインターフェイスを指定した場合は、そのインターフェイスのマクロの説明を表示します。

  • name macro-name:マクロ名で識別される 1 つのマクロに関する情報を表示します。

  • detailed:現在のポートに加えて、現在のポート以外のポートの情報を表示します。

デフォルト設定

現在のポートですべてのマクロの説明を表示します。

detailed キーワードを使用しないと、現在のポートだけが表示されます。

コマンド モード

ユーザ EXEC モード

例 1:次の例では、show parser macro コマンドの出力を示します。

switchxxxxxx# show parser macro
Total number of macros = 6
--------------------------------------------------------------
Macro name : company-global
Macro type : default global
# Enable dynamic port error recovery for link state
# failures
--------------------------------------------------------------
Macro name : company-desktop
Macro type : default interface
# macro keywords $AVID
# Basic interface - Enable data VLAN only
# Recommended value for access vlan (AVID) should not be 1
switchport access vlan $AVID
switchport mode access

例 2:次の例では、show parser macro name コマンドの出力を示します。

switchxxxxxx# show parser macro standard-switch10
Macro name : standard-switch10
Macro type : customizable
macro description standard-switch10
# Trust QoS settings on VOIP packets
auto qos voip trust
# Allow port channels to be automatically formed
channel-protocol pagp

例 3:次の例では、show parser macro brief コマンドの出力を示します。

switchxxxxxx# show parser macro brief
default global : company-global
default interface: company-desktop
default interface: company-phone
default interface: company-switch
default interface: company-router
customizable : snmp

例 4:次の例では、show parser macro description コマンドの出力を示します。

switchxxxxxx# show parser macro description
Global Macro(s): company-global

例 5:次の例では、show parser macro description interface コマンドの出力を示します。

switchxxxxxx# show parser macro description interface gi1/0/2
Interface Macro Description
--------------------------------------------------------------
gi1/0/2 this is test macro
--------------------------------------------------------------