スイッチ : Cisco Catalyst 6500 シリーズ スイッチ

Cisco IOS シェル CLI モジュールの設定例

2016 年 10 月 28 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック

概要

このドキュメントでは、Cisco IOS® Shell(IOS.sh)CLI モジュールについて説明します。

著者:Cisco TAC エンジニア、Oleksandr Nesterov

前提条件

要件

Cisco IOS リリース 15.1(4)M、15.1(2)S、およびそれ以降のリリースに関する基本的な知識があることが推奨されます。 ルータで Cisco IOS.sh 機能を使用するには、Cisco IOS.sh を設定してイネーブルにする必要があります。

使用するコンポーネント

このドキュメントの情報は、次のハードウェアとソフトウェアのバージョンに基づくものです。

  • Cisco Catalyst 6500 シリーズ スイッチ
  • Cisco IOS Release 15.1(1)SY

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

背景説明

Cisco IOS.sh は、Cisco IOS CLI でシェル スクリプトを使用できるようにするモジュールです。 このモジュールを使用すると、定期的な処理を自動化したり、デバイス管理を簡素化したりできます。 このモジュールは、Cisco IOS Embedded Event Manager (EEM)などの他の管理ツールと組み合わせて使用できます。

設定

: このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool登録ユーザ専用)を使用してください。

デバイスで Shell CLI をイネーブルにするには、次のコマンドを入力します。

Switch#terminal shell

Shell CLI をディセーブルにするには、次のコマンドを入力します。

Switch#terminal no shell

この機能では PATH 変数がサポートされます。PATH 変数には、シェルが関数/アプレットを検索できるディレクトリのリストが含まれます。 また、Shell CLI では次の機能もサポートされます。

パイプとリダイレクション

Switch#show version | grep 15.1
Cisco IOS Software, s2t54 Software (s2t54-ADVENTERPRISEK9-M),
Version 15.1(1)SY, RELEASE SOFTWARE (fc2)

Switch#show version | grep 15 > bootdisk:version.txt
Switch#dir bootdisk:
Directory of bootdisk:/

14 -rw- 280 Nov 15 2012 23:25:32 +00:00 version.txt

1024557056 bytes total (577273856 bytes free)

Switch#cat bootdisk:version.txt
Cisco IOS Software, s2t54 Software (s2t54-ADVENTERPRISEK9-M),
Version 15.1(1)SY, RELEASE SOFTWARE (fc2)

組み込みアプレット

Cisco IOS.sh には、アプリケーションとユーザ関数用のフィルタの作成に役立つアプレットがいくつか組み込まれています。

[[             evaluate a logical test expression
cat            output data from a pipe or file to the terminal
cut            edit piped output
echo           echo arguments to the terminal
false          return false in while or if expressions, and set the result
fetch          return values from the configuration database
grep           search for regular expressions in piped output or files
head           print the first lines in the input
interface      print interfaces that match the argument
let            evaluate a numeric expression, and set the result
man            print information for built-ins
more           page piped output to the terminal
nl             number the lines in the input
null           ignore the input
printf         output formatted data to the terminal
read           read input into variables
set_oper       set operational values
sleep          pause execution of the terminal
sort           sort the input
tail           print the tail of the input
true           return true in while or if expressions, and set the result
uname          print system information
wc             count lines, words, and characters

条件

次に、if....then....else 演算子のコマンドを示します。

Switch#x=5
Switch#if [[ $x != 5 ]];
then.else.fi>then
then.else.fi>echo false;
then.else.fi>else
else..fi>echo true;
else..fi>fi;
true
Switch#

次の比較演算子は、整数値を操作するために使用します。

演算子説明
-eqArg1-eq Arg2。 Arg1 と Arg2 が等しい場合に True を返します。
-neArg1-ne Arg2。 Arg1 と Arg2 が等しくない場合に True を返します。
-ltArg1-lt Arg2。 Arg1 が Arg2 より小さい場合に True を返します。
-gtArg1-gt Arg2。 Arg1 が Arg2 より大きい場合に True を返します。
-geArg1-ge Arg2。 Arg1 が Arg2 より大きいか、Arg2 と等しい場合に True を返します。
-leArg1-le Arg2。 Arg1 が Arg2 より小さいか、Arg2 と等しい場合に True を返します。

次の条件は、ファイルを操作するために使用できます。

演算子説明
-a または -eファイルが存在する場合に True を返します。
-dファイルが存在し、それがディレクトリである場合に True を返します。
-fファイルが存在し、それが通常のファイルである場合に True を返します。
-rファイルが存在し、それが読み取り可能である場合に True を返します。
-sファイルが存在し、そのサイズがゼロより大きい場合に True を返します。
-wファイルが存在し、それが実行可能である場合に True を返します。
-ntfile1 が file2 より新しいかどうかをテストします。 この比較には、ファイルの変更日が使用されます。
-otfile1 が file2 より古いかどうかをテストします。

比較演算子内で複数の条件を使用するには、次の論理演算子を使用できます。

  &&    Logical AND
  ||    Logical OR

ループ

ループは Linux シェルと同じです。 2 つの演算子を使用できます。


次に、for 演算子のコマンドを示します。

Switch#for x in 11 
do..done>do
do..done>ping 192.0.2.$x
do..done>done
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.0.2.10,timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
Switch#

次に、while 演算子のコマンドを示します。

Switch#for i in 1 2 3
do..done>do
do..done>while [ $i -lt 3 ]
do..done>do
do..done>echo $i
do..done>done
do..done>i=i+1
do..done>done
Switch#

文字列操作

文字列を比較する場合は、if....then....else 演算子を次のように変更して使用できます。

演算子説明
==String 1 == string2。文字列が等しい場合に True を返します。
! =String1 ! = string2。文字列が等しくない場合に True を返します。
<String1 < string2。string1 が辞書上で string2 より小さい場合に True を返します。
>String1 > string2。string1 が辞書上で string2 より大きい場合に True を返します。

設定例

Switch#function add_desc() {
{..} >show running-config interface Gi$1
{..} >configuration terminal
{..} >interface Gi$1
{..} >description $2
{..} >end
{..} >show running-config interface Gi$1
{..} >}
Switch#add_desc 5/1 SHELL_TEST
Building configuration...

Current configuration : 74 bytes
!
interface GigabitEthernet5/1
ip address 192.0.2.10 255.255.255.0
end

Enter configuration commands, one per line. End with CNTL/Z.
Building configuration...

Current configuration : 98 bytes
!
interface GigabitEthernet5/1
description SHELL_TEST
ip address 192.0.2.10 255.255.255.0
end

Switch#

確認

このセクションでは、設定が正常に機能していることを確認します。

現在のターミナル設定を表示するには、show terminal コマンドを入力します。

Switch#show terminal 
Line 2, Location: "", Type: "XTERM-COLOR"
Length: 44 lines, Width: 155 columns
Baud rate (TX/RX) is 9600/9600
Status: PSI Enabled, Ready, Active, No Exit Banner, Ctrl-c Enabled
........
Preferred transport is lat.
Shell: enabled
Shell trace: off

ユーザ定義関数を含む、モジュールで使用可能なすべての関数を表示するには、show shell functions コマンドを入力します。

Switch#show shell functions
 #User defined functions:

Function namespace: DEFAULT
function add_desc()
{
 show running-config interface Gi$1
 configure terminal
 interface Gi$1
 description $2
 end
 show running-config interface Gi$1
}

トラブルシューティング

現在のところ、この設定に関する特定のトラブルシューティング情報はありません。

関連情報



Document ID: 116208