Dit document beschrijft de CLI-module van Cisco IOS® Shell (IOS.sh).
Cisco raadt u aan kennis te hebben van Cisco IOS release 15.1(4)M, 15.1(2)S en latere releases. Cisco IOS.sh moet worden geconfigureerd en ingeschakeld om de functies en functies van Cisco IOS.sh op uw router te kunnen gebruiken.
De informatie in dit document is gebaseerd op deze hardware- en softwareversies:
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u de potentiële impact van elke opdracht begrijpen.
Cisco IOS.sh is een module waarmee u shell scripting in Cisco IOS CLI kunt gebruiken. Deze module helpt routinematige acties te automatiseren en vereenvoudigt het apparaatbeheer. Het kan in combinatie met andere beheergereedschappen worden gebruikt, zoals Cisco IOS Embedded Event Manager (EEM).
Voer in om Shell CLI op het apparaat in te schakelen:
Switch#terminal shell
Ga als volgt te werk om de Shell CLI uit te schakelen:
Switch#terminal no shell
Deze optie ondersteunt de PATH-variabele, die een lijst bevat van directories waar shell naar functies/applets kan zoeken. Tevens ondersteunt Shell CLI deze functies:
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 bevat verschillende ingebouwde applets die helpen toepassingen en filters te maken voor de gebruikersfuncties:
[[ 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
Hier zijn de opdrachten voor de if...Dan....andere exploitant.
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#
Deze vergelijkingsexploitanten worden gebruikt om met integerwaarden te werken:
Exploitanten | Beschrijving |
-eq | Arg1-eq Arg2. True als Arg1 gelijk is aan Arg2 |
-n | Arg1-ne Arg2. True als Arg1 niet gelijk is aan Arg2 |
-lt | Arg1-lt Arg2. True als Arg1 kleiner is dan Arg2 |
K | Arg1-GE Arg2. True als Arg1 groter is dan Arg2 |
-ge | Arg1-ge Arg2. True als Arg1 groter dan of gelijk aan Arg2 is |
spleet | Arg1-le Arg2. True als Arg1 kleiner of gelijk is aan Arg2 |
Deze voorwaarden zijn beschikbaar voor het werken met bestanden:
Exploitanten | Beschrijving |
-a of -e | True als bestand bestaat |
-d | Waar als bestand bestaat en het een folder is |
-f | Waar als bestand bestaat en een vast bestand is |
-r | Waar als bestand bestaat en leesbaar is |
S | Waar als bestand bestaat en groter is dan nul |
-w | Waar als bestand bestaat en uitvoerbaar is |
-t | Test of file1 nieuwer is dan file2. De wijzigingsdatum op het bestand wordt voor deze vergelijking gebruikt |
-Aan | Test als file1 ouder is dan file2 |
U kunt bij een vergelijkingsoperator meerdere voorwaarden gebruiken:
&& Logical AND
|| Logical OR
Loops is hetzelfde als in Linux shell. Er zijn twee operatoren beschikbaar.
Hier zijn de opdrachten voor de operator:
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#
Hier zijn de opdrachten voor de beheerder:
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#
Voor string vergelijkingen, als...Dan....anders kan de operator met deze wijzigingen worden gebruikt:
Exploitanten | Beschrijving |
= = = | String 1 = string2, True als de strings gelijk zijn. |
!= | String1!= string2, True als de strings niet gelijk zijn |
< | String1 < string2, True als string1 lexicografisch minder is dan string2 |
> | String1 > string2, True als string1 lexicografisch groter is dan string2 |
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#
Gebruik dit gedeelte om te bevestigen dat de configuratie correct werkt.
Geef de opdracht Show terminal op om de huidige terminal configuratie weer te geven:
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
Typ de opdracht show shell-functies om alle functies in de module weer te geven die door de gebruiker gedefinieerde functies omvatten:
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
}
Er is momenteel geen specifieke troubleshooting-informatie beschikbaar voor deze configuratie.