Este documento descreve o módulo CLI do Cisco IOS® Shell (IOS.sh).
A Cisco recomenda que você tenha conhecimento do Cisco IOS versão 15.1(4)M, 15.1(2)S e versões posteriores. O Cisco IOS.sh deve ser configurado e ativado para usar os recursos e as funções do Cisco IOS.sh no roteador.
As informações neste documento são baseadas nas seguintes versões de hardware e software:
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.
O Cisco IOS.sh é um módulo que permite usar scripts shell na CLI do Cisco IOS. Este módulo ajuda a automatizar ações de rotina e simplifica o gerenciamento de dispositivos. Ele pode ser usado em conjunto com outras ferramentas de gerenciamento, como o Cisco IOS Embedded Event Manager (EEM).
Para habilitar a CLI do Shell no dispositivo, insira:
Switch#terminal shell
Para desabilitar a CLI do Shell, insira:
Switch#terminal no shell
Este recurso suporta a variável PATH, que contém uma lista de diretórios onde shell pode procurar funções/miniaplicativos. Além disso, a CLI do Shell suporta estes recursos:
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)
O Cisco IOS.sh contém vários miniaplicativos incorporados que ajudam a criar aplicativos e filtros para as funções do usuário:
[[ 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
Aqui estão os comandos para o se......então....outro operador.
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#
Estes operadores de comparação são usados para trabalhar com valores inteiros:
Operadores | Descrição |
-eq | Arg1-eq Arg2. Verdadeiro se Arg1 é igual a Arg2 |
-ne | Arg1-ne Arg2. Verdadeiro se Arg1 não é igual a Arg2 |
-lt | Arg1-lt Arg2. Verdadeiro se Arg1 é menor que Arg2 |
-gt | Arg1-gt Arg2. Verdadeiro se Arg1 é maior que Arg2 |
-ge | Arg1-ge Arg2. Verdadeiro se Arg1 é maior ou igual a Arg2 |
-le | Arg1-le Arg2. Verdadeiro se Arg1 é menor ou igual a Arg2 |
Essas condições estão disponíveis para trabalhar com arquivos:
Operadores | Descrição |
-a ou -e | Verdadeiro se o arquivo existir |
-d | Verdadeiro se o arquivo existir e ele for um diretório |
-f | Verdadeiro se o arquivo existe e é um arquivo normal |
-r | Verdadeiro se o arquivo existe e é legível |
-s | Verdadeiro se o arquivo existir e tiver um tamanho maior que zero |
-w | Verdadeiro se o arquivo existe e é executável |
-nt | Teste se o arquivo 1 é mais recente que o arquivo 2. A data de modificação no arquivo é usada para esta comparação |
-t | Testar se o arquivo 1 é mais antigo que o arquivo 2 |
Para usar várias condições em um operador de comparação, você pode usar estes operadores lógicos:
&& Logical AND
|| Logical OR
Os loops são os mesmos do shell do Linux. Existem dois operadores disponíveis.
Estes são os comandos para o para o operador:
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#
Estes são os comandos para o operador 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#
Para comparações de strings, o if......então....else operador pode ser usado com estas modificações:
Operadores | Descrição |
== | String 1 == string2, Verdadeiro se as strings forem iguais. |
!= | String1 != string2 , Verdadeiro se as strings não forem iguais |
< | String1 < string2, Verdadeiro se string1 é lexicograficamente menor que string2 |
> | String1 > string2, Verdadeiro se string1 é lexicograficamente maior que 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#
Use esta seção para confirmar se a sua configuração funciona corretamente.
Insira o comando show terminal para exibir a configuração atual do 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
Insira o comando show shell functions para exibir todas as funções disponíveis no módulo, que incluem funções definidas pelo usuário:
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
}
Atualmente, não existem informações disponíveis específicas sobre Troubleshooting para esta configuração.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
05-Jul-2013 |
Versão inicial |