Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Informations générales

Configuration

Canalisations et redirection

Applets intégrés

Conditions

Boucles

Opérations de chaîne

Exemple de configuration

Vérification

Dépannage

Informations connexes

Introduction

Ce document décrit le module CLI de Cisco IOS® Shell (IOS.sh).

Conditions préalables

Conditions requises

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.

Components Used

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Commutateurs de la gamme Cisco Catalyst 6500

- Cisco IOS version 15.1(1)SY

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.

Informations générales

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).

Configuration

Note: Utilisez l'Outil de recherche de commande (clients inscrits seulement) pour obtenir plus d'informations sur les commandes utilisées dans cette section.

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 :

Canalisations et redirection

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)

Applets intégrés

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

Conditions

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

Boucles

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#

Opérations de chaîne

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

Exemple de configuration

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#

Vérification

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

}

Dépannage

Il n'existe actuellement aucune information de dépannage spécifique pour cette configuration.

Informations connexes

- Guides de configuration du Catalyst 6500

- Support et documentation techniques - Cisco Systems