このドキュメントでは、Cisco IOS® Shell(IOS.sh)CLI モジュールについて説明します。
Cisco IOS リリース 15.1(4)M、15.1(2)S、およびそれ以降のリリースに関する基本的な知識があることが推奨されます。ルータで Cisco IOS.sh 機能を使用するには、Cisco IOS.sh を設定してイネーブルにする必要があります。
このドキュメントの情報は、次のハードウェアとソフトウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
Cisco IOS.sh は、Cisco IOS CLI でシェル スクリプトを使用できるようにするモジュールです。このモジュールを使用すると、定期的な処理を自動化したり、デバイス管理を簡素化したりできます。このモジュールは、Cisco IOS Embedded Event Manager (EEM)などの他の管理ツールと組み合わせて使用できます。
デバイスで 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...のコマンドを次に示します。その後….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#
次の比較演算子は、整数値を操作するために使用します。
演算子 | 説明 |
-eq | Arg1-eq Arg2。Arg1がArg2と等しい場合にTrueを返します |
-ne | Arg1-ne Arg2。Arg1がArg2と等しくない場合にTrueを返します |
-lt | Arg1-lt Arg2。Arg1がArg2より小さい場合にTrueを返します |
-gt | Arg1-gt Arg2。Arg1がArg2より大きい場合にTrueを返します |
-ge | Arg1-ge Arg2。Arg1がArg2以上の場合にTrueを返します |
-le | Arg1-le Arg2。Arg1がArg2以下の場合にtrueを返します |
次の条件は、ファイルを操作するために使用できます。
演算子 | 説明 |
-a または -e | ファイルが存在する場合に True を返します。 |
-d | ファイルが存在し、それがディレクトリである場合に True を返します。 |
-f | ファイルが存在し、それが通常のファイルである場合に True を返します。 |
-r | ファイルが存在し、それが読み取り可能である場合に True を返します。 |
-s | ファイルが存在し、そのサイズがゼロより大きい場合に True を返します。 |
-w | ファイルが存在し、それが実行可能である場合に True を返します。 |
-nt | file1がfile2より新しいかどうかをテストします。この比較には、ファイルの変更日が使用されます |
-ot | file1 が 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...その後….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
}
現在、この設定に関する特定のトラブルシューティング情報はありません。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
05-Jul-2013 |
初版 |