In questo documento viene descritto il modulo CLI di Cisco IOS® Shell (IOS.sh).
Cisco raccomanda la conoscenza di Cisco IOS versione 15.1(4)M, 15.1(2)S e successive. Per utilizzare le funzionalità e le funzioni di Cisco IOS.sh sul router, è necessario configurare e abilitare Cisco IOS.sh.
Le informazioni di questo documento si basano sulle seguenti versioni hardware e software:
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Cisco IOS.sh è un modulo che consente di utilizzare gli script della shell nella CLI di Cisco IOS. Questo modulo consente di automatizzare le azioni di routine e semplifica la gestione dei dispositivi. Può essere utilizzato in combinazione con altri strumenti di gestione, ad esempio Cisco IOS Embedded Event Manager (EEM).
Per abilitare Shell CLI sul dispositivo, immettere:
Switch#terminal shell
Per disabilitare Shell CLI, immettere:
Switch#terminal no shell
Questa funzionalità supporta la variabile PATH, che contiene un elenco di directory in cui la shell può cercare funzioni/applet. Inoltre, Shell CLI supporta le seguenti funzionalità:
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 contiene diverse applet incorporate che consentono di creare applicazioni e filtri per le funzioni utente:
[[ 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
Di seguito sono riportati i comandi per il se...Allora....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#
Questi operatori di confronto vengono utilizzati per utilizzare valori interi:
Operatori | Descrizione |
-eq | Arg1-eq Arg2. True se Arg1 è uguale a Arg2 |
-ne | Arg1-ne Arg2. True se Arg1 è diverso da Arg2 |
-lt | Arg1-lt Arg2. True se Arg1 è minore di Arg2 |
-gt | Arg1-gt Arg2. True se Arg1 è maggiore di Arg2 |
-ge | Arg1-ge Arg2. True se Arg1 è maggiore o uguale a Arg2 |
-le | Arg1-le Arg2. True se Arg1 è minore o uguale a Arg2 |
Per utilizzare i file, sono disponibili le seguenti condizioni:
Operatori | Descrizione |
-a oppure -e | True se il file esiste |
-d | True se il file esiste ed è una directory |
-f | True se il file esiste ed è un file normale |
-r | True se il file esiste ed è leggibile |
-s | True se il file esiste e ha dimensioni maggiori di zero |
-w | True se il file esiste ed è eseguibile |
-nt | Verifica se file1 è più recente di file2. Per questo confronto viene utilizzata la data di modifica del file |
-ot | Verifica se file1 è precedente a file2 |
Per utilizzare diverse condizioni all'interno di un operatore di confronto, è possibile utilizzare i seguenti operatori logici:
&& Logical AND
|| Logical OR
I loop sono gli stessi della shell Linux. Sono disponibili due operatori.
Di seguito sono riportati i comandi per l'operatore 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#
Di seguito sono riportati i comandi per l'operatore 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#
Per i confronti tra stringhe, il comando if...Allora....else può essere utilizzato con le seguenti modifiche:
Operatori | Descrizione |
== | String 1 == string2, True se le stringhe sono uguali. |
!= | String1 != string2 , True se le stringhe non sono uguali |
< | String1 < string2, True se string1 è lessicograficamente minore di string2 |
> | Stringa1 > stringa2, True se stringa1 è lessicograficamente maggiore di stringa2 |
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#
Fare riferimento a questa sezione per verificare che la configurazione funzioni correttamente.
Immettere il comando show terminal per visualizzare la configurazione corrente del terminale:
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
Immettere il comando show shell functions per visualizzare tutte le funzioni disponibili nel modulo, incluse le funzioni definite dall'utente:
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
}
Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
05-Jul-2013 |
Versione iniziale |