Ce document décrit le module CLI de Cisco IOS® Shell (IOS.sh).
Cisco vous recommande de connaître Cisco IOS version 15.1(4)M, 15.1(2)S et versions ultérieures. Cisco IOS.sh doit être configuré et activé pour pouvoir utiliser les fonctions et fonctions de Cisco IOS.sh sur votre routeur.
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Cisco IOS.sh est un module qui vous permet d'utiliser des scripts shell dans l'interface de ligne de commande de Cisco IOS. Ce module permet d'automatiser les actions de routine et de simplifier la gestion des périphériques. Il peut être utilisé conjointement avec d'autres outils de gestion tels que Cisco IOS Embedded Event Manager (EEM).
Afin d'activer l'interface de ligne de commande Shell sur le périphérique, saisissez :
Switch#terminal shell
Afin de désactiver l'interface de ligne de commande Shell, saisissez :
Switch#terminal no shell
Cette fonction prend en charge la variable PATH, qui contient une liste de répertoires dans lesquels le shell peut rechercher des fonctions/applets. En outre, l'interface de ligne de commande Shell prend en charge les fonctionnalités suivantes :
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 contient plusieurs applets intégrés qui permettent de créer des applications et des filtres pour les fonctions utilisateur :
[[ 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
Voici les commandes pour le if......opérateur .sinon.
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#
Ces opérateurs de comparaison sont utilisés afin de fonctionner avec des valeurs entières :
Opérateurs | Description |
-eq | Arg1-eq Arg2. True si Arg1 est égal à Arg2 |
-1 | Arg1-ne Arg2. True si Arg1 n'est pas égal à Arg2 |
-lt | Arg1-lt Arg2. True si Arg1 est inférieur à Arg2 |
-gt | Arg1-gt Arg2. True si Arg1 est supérieur à Arg2 |
-ge | Arg1-ge Arg2. True si Arg1 est supérieur ou égal à Arg2 |
-le | Arg1-le Arg2. True si Arg1 est inférieur ou égal à Arg2 |
Ces conditions sont disponibles afin de travailler avec des fichiers :
Opérateurs | Description |
-a ou -e | True si le fichier existe |
-d | True si un fichier existe et qu'il s'agit d'un répertoire |
-f | True si un fichier existe et s'il s'agit d'un fichier normal |
-r | True si le fichier existe et est lisible |
-s | True si le fichier existe et a une taille supérieure à zéro |
-w | True si le fichier existe et est exécutable |
-nt | Vérifiez si le fichier 1 est plus récent que le fichier 2. La date de modification du fichier est utilisée pour cette comparaison |
-pas | Vérifier si le fichier 1 est plus ancien que le fichier 2 |
Afin d'utiliser plusieurs conditions dans un opérateur de comparaison, vous pouvez utiliser ces opérateurs logiques :
&& Logical AND
|| Logical OR
Les boucles sont identiques à celles du shell Linux. Deux opérateurs sont disponibles.
Voici les commandes de l'opérateur 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#
Voici les commandes de l'opérateur 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#
Pour les comparaisons de chaînes, le if.......else opérateur peut être utilisé avec ces modifications :
Opérateurs | Description |
== | String 1 == string2, True si les chaînes sont égales. |
!= | String1 != string2 , True si les chaînes ne sont pas égales |
< | String1 < string2, True si string1 est lexicographiquement inférieur à string2 |
> | String1 > string2, True si string1 est lexicographiquement supérieur à 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#
Utilisez cette section pour confirmer que votre configuration fonctionne correctement.
Entrez la commande show terminal afin d'afficher la configuration actuelle du 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
Entrez la commande show shell fonctions afin d'afficher toutes les fonctions disponibles dans le module, qui incluent les fonctions définies par l'utilisateur :
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
}
Il n'existe actuellement aucune information de dépannage spécifique pour cette configuration.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
05-Jul-2013 |
Première publication |