Cisco IOS Scripting with Tcl

Anuncio
Cisco IOS Scripting with Tcl
Descargue este capítulo
Cisco IOS Scripting with Tcl
Descargue el libro completo
Guía de configuración de la administración del Cisco IOS Network, versión 12.2SR (PDF - 8 MB)
Feedback
Contenidos
Cisco IOS Scripting with Tcl
Contenido
Prerrequisitos de Cisco IOS Scripting with Tcl
Restricciones de Cisco IOS Scripting with Tcl
Información sobre Cisco IOS Scripting with Tcl
Shell Tcl para Cisco IOS Software
Precompilador Tcl
Acceso al Objeto SNMP MIB
Extensiones de encargo en el shell Tcl
Extensiones de encargo del SNMP MIB en el shell Tcl
Cómo Configurar la Creación de Scripts de Cisco IOS con Tcl
Habilitando el shell y usar Tcl el CLI a los comandos Enter
Ejemplos
Consejos de Troubleshooting
Usando el shell Tcl para acceder los objetos del SNMP MIB
Prerrequisitos
Consejos de Troubleshooting
Scripts TCL predefinido que se ejecuta
Prerrequisitos
Ejemplos de Configuración de Cisco IOS Scripting with Tcl
Ejemplo: Script Tcl usando el comando show interfaces
Ejemplo: Script Tcl para el soporte S TP
Ejemplo: Script Tcl para el acceso del SNMP MIB
Referencias adicionales
Documentos Relacionados
Estándares
MIB
RFC
Asistencia Técnica
Información sobre la Función Cisco IOS Scripting with Tcl
Glosario
Cisco IOS Scripting with Tcl
Primera publicación: De julio el 28 de 2003
Última actualización: De septiembre el 10 de 2010
La función Cisco IOS Scripting with Tcl proporciona la capacidad de ejecutar los comandos de Tool Command Language (Tcl)
versión 8.3.4 desde la interfaz de línea de comandos (CLI) de Cisco IOS.
Su versión de software puede no soportar todas las características documentadas en este módulo. Para la últimas información y
advertencias de la característica, vea los Release Note para su plataforma y versión de software. Para encontrar la información
sobre las características documentadas en este módulo, y ver una lista de las versiones en las cuales se soporta cada
característica, vea “información de la característica para el scripting del Cisco IOS con la sección Tcl”.
Utilice Cisco Feature Navigator para buscar información sobre el soporte de plataformas y el soporte de imágenes del software
Cisco IOS y Catalyst OS. Para acceder a Cisco Feature Navigator, vaya a http://www.cisco.com/go/cfn. Una cuenta en
Cisco.com no se requiere.
Contenido
•
Prerrequisitos de Cisco IOS Scripting with Tcl
•
Restricciones de Cisco IOS Scripting with Tcl
•
Información sobre Cisco IOS Scripting with Tcl
•
Cómo Configurar la Creación de Scripts de Cisco IOS con Tcl
•
Ejemplos de Configuración de Cisco IOS Scripting with Tcl
•
Referencias adicionales
•
Información sobre la Función Cisco IOS Scripting with Tcl
•
Glosario
Prerrequisitos de Cisco IOS Scripting with Tcl
•
La familiaridad con la programación y los comandos cisco ios Tcl se requiere.
• Los comandos Tcl se pueden ejecutar del modo de configuración Tcl que usa el Cisco IOS CLI. Acceden al modo de
configuración Tcl del modo EXEC privilegiado. El acceso al modo EXEC privilegiado se debe manejar por el acceso de
restricción usando enable el comando password.
Restricciones de Cisco IOS Scripting with Tcl
• Si se usan comandos de configuración de Cisco IOS en scripts Tcl, hay que ingresar los comandos de submodo como
argumentos entre comillas en la misma línea que el comando de configuración.
• Se proporcionan los mensajes de error, pero usted debe marcar que el script Tcl se ejecutará con éxito porque los
errores pueden hacer el shell Tcl ejecutarse en un Loop infinito.
Advierta el uso de los socketes del servidor Tcl de escuchar el telnet y los puertos FTP (23 y 21 respectivamente) se apropiará
de dirección normal de estos puertos en Cisco IOS Software.
• El cuadro 1 enumera los comandos Tcl y las llamadas de la biblioteca que no se comportan dentro del Cisco IOS
Software como se documenta en los documentos estándar Tcl.
Palabra
Comando clave
Argumento Soportados Comentarios
after
ms
script
Parcialmente Cuando se utiliza el comando tclsh de la CLI, no
hay ningún loop de evento implementado a
menos que Embedded Syslog Manager (ESM)
esté activo en el mismo router. Los comandos
entered que usanafter el comando Tcl no se
ejecutarán a menos que estén forzados usando
update el comando. El modo de sueño (afterel
comando) trabaja solamente conms la palabra
clave.
file
-time
atime
No
La palabra clave optativa-time para fijar el tiempo
del acceso al archivo no se soporta en Cisco IOS
Software.
file
-time
mtime
No
La palabra clave optativa-time para fijar el tiempo
de la modificación de archivos no se soporta en
Cisco IOS Software.
fileevent
history
Parcialmente Cuando se utiliza el comando tclsh de la CLI, no
hay ningún loop de evento implementado a
menos que Embedded Syslog Manager (ESM)
esté activo en el mismo router. Los comandos
entered que usanfileevent el comando Tcl no se
ejecutarán a menos que estén forzados usando
update el comando.
!n
load
Parcialmente !nEl acceso directo no trabaja en Cisco IOS
Software. Utilicehistory el comando Tcl conredo n
la palabra clave.
No
Cuando utilizan al comando load CLI, el
exponer del mensaje de error “dinámico
cargando no disponible en este sistema” se
visualiza.
Información sobre Cisco IOS Scripting with Tcl
Para crear y utilizar el Scripts TCL dentro del Cisco IOS Software, usted debe entender los conceptos siguientes:
•
Shell Tcl para Cisco IOS Software
•
Precompilador Tcl
•
Acceso al Objeto SNMP MIB
Shell Tcl para Cisco IOS Software
El shell Tcl del Cisco IOS fue diseñado para permitir que los clientes funcionen con los comandos Tcl directamente del
prompt del Cisco IOS CLI. El Cisco IOS Software contiene algunos subsistemas tales como administrador integrado del Syslog
(ESM) y respuesta de voz interactiva (IVR) los intérpretes ese Tcl del uso como parte de su implementación. Estos subsistemas
tienen sus propios comandos y opción de palabra clave propietarios que no estén disponibles en el shell Tcl.
Varios métodos se han desarrollado para el Scripts TCL que creaba y que se ejecutaba dentro del Cisco IOS Software. Un shell
Tcl puede ser habilitado, y los comandos Tcl pueden ser línea por línea ingresado. Después de que se ingresen los comandos
Tcl, se envían a un intérprete Tcl. Si los comandos se reconocen como comandos válidos Tcl, se ejecutan los comandos y los
resultados se envían al dispositivo TTY. Si un comando no es un comando reconocido Tcl, se envía al analizador de sintaxis del
Cisco IOS CLI. Si el comando no es un Tcl o comando cisco ios, se visualizan dos mensajes de error. Un script predefinido Tcl
se puede crear fuera del Cisco IOS Software, transferido para contellear o de la memoria de disco, y se ejecuta dentro del Cisco
IOS Software. Es también posible crear un script Tcl y precompilar el código antes de ejecutarlo bajo Cisco IOS Software.
Los usuarios múltiples en el mismo router pueden estar en el modo de configuración Tcl al mismo tiempo sin interferencia
porque cada sesión del shell Tcl pone en marcha un intérprete separado y el proceso del servidor Tcl. El Número de interfaz
TTY servido por cada proceso Tcl se representa en el nombre del proceso del servidor y se puede visualizar usando show
process el comando CLI.
El shell Tcl se puede utilizar para funcionar con los comandos exec del Cisco IOS CLI dentro de un script Tcl. Usando el shell
Tcl funcionar con los comandos CLI permite que los clientes construyan los menús para dirigir a los usuarios del novato con las
tareas, de automatizar las tareas repetidores, y de crear la salida de encargo para show los comandos.
Precompilador Tcl
El soporte de las ofertas de la implementación Tcl del Cisco IOS para los scripts que cargan que han sido precompilados por el
precompilador de TclPro. Los scripts precompilados permiten una medida de Seguridad y de estado coherente porque se
ofuscan.
Acceso al Objeto SNMP MIB
Diseñó hacer el acceso a los objetos de MIB del Simple Network Management Protocol (SNMP) más fácil, un conjunto Unixcomo de los comandos SNMP se ha creado. El shell Tcl se habilita manualmente o usando un script Tcl, y los comandos new
pueden ser ingresados para permitir que usted se realice especificado consiguen y fijan las acciones en los objetos de MIB.
Para aumentar la utilidad, los comandos new tienen nombres similares a ésos usados para el acceso de UNIX SNMP. Para
acceder los comandos SNMP vaya a, “usando el shell Tcl a acceder sección de los objetos del SNMP MIB”.
Extensiones de encargo en el shell Tcl
La implementación del Cisco IOS del shell Tcl contiene algunas Extensiones del comando custom. Estas extensiones sólo
funcionan en modo de configuración de Tcl. El cuadro 2 visualiza estas Extensiones del comando.
Comando
Descripción
fconfigure -remote []host portbroadcastboolean vrf []
vrf_table_name
Especifica las opciones en un canal y le permite para asociar
un ruteo virtual y un nombre de la tabla de la expedición
(VRF) a él.
ios_config
Funciona con un comando configuration del Cisco IOS CLI.
log_user
Salida de comando Tcl de las palancas bajo modo de
configuración Tcl.
socket -myvrf []vrf_table_name
Abre una conexión de red TCP y le permite para asociar un
nombre de la tabla VRF a él.
typeahead
Escribe el texto al archivo estándar del buffer de la entrada
del router (stdin).
tclquit
Shell Tcl de las hojas — sinónimo para exit.
udp_open -ipv6 port
Abre un socket del User Datagram Protocol (UDP).
udp_peek sock -buffersize buffersize
Permisos que miran a escondidas en un socket UDP.
Extensiones de encargo del SNMP MIB en el shell Tcl
La implementación del Cisco IOS del shell Tcl contiene algunas Extensiones del comando custom para el acceso a objetos del
SNMP MIB. Estas extensiones sólo funcionan en modo de configuración de Tcl. El cuadro 3 visualiza estas Extensiones del
comando.
Comando
Descripción
snmp_getbulk Extrae un gran parte de una tabla MIB. Este comando es similar al comando SNMP
getbulk . La sintaxis tiene el formato siguiente:
snmp_getbulk community-string non-repeaters max-repetitions oid [...]oid2 oid3
•
Utilice community-string el argumento para especificar la comunidad SNMP
de quien los objetos serán extraídos.
• Utilice non-repeaters el argumento para especificar el número de objetos que
se puedan extraer con una operación del Get Next.
• Utilice max-repetitions el argumento para especificar el número máximo de
operaciones del Get Next para intentar mientras que intenta extraer los objetos
restantes.
•
snmp_getid
Utilice oid el argumento para especificar el ID del objeto para extraer.
Extrae las variables siguientes de la entidad SNMP en el router:
•
sysDescr.0
•
sysObjectID.0
•
sysUpTime.0
•
sysContact.0
•
sysName.0
•
sysLocation.0
Este comando es similar al comando SNMP getid . La sintaxis tiene el formato
siguiente:
snmp_getid community-string
snmp_getnext Extrae un conjunto de variables individuales de la entidad SNMP en el router. Este
comando es similar al comando SNMP getnext . La sintaxis tiene el formato
siguiente:
snmp_getnext community-string oid [...]oid2 oid3
snmp_getone Extrae un conjunto de variables individuales de la entidad SNMP en el router. Este
comando es similar al comando SNMP getone . La sintaxis tiene el formato
siguiente:
snmp_getone community-string oid [...]oid2 oid3
snmp_setany Extrae los valores actuales de las variables especificadas y después realiza una
petición del conjunto en las variables. Este comando es similar al comando SNMP
setany . La sintaxis tiene el formato siguiente:
snmp_setany community-string oid type val [...]oid2 type2 val2
• Utilice type el argumento para especificar el tipo de objeto para extraer. type
Puede ser uno del siguiente:
-i– — Número entero. Un número de 32 bits que se utiliza para
especificar un tipo numerado en el contexto de un objeto administrado. Por
ejemplo, para definir el estado operativo de una interfaz del router, 1
representa activo y 2 representa inactivo.
-u– — Unsigned32. Un número de 32 bits usado para representar los
valores decimales en el rango a partir de la 0 a 232 - 1 inclusivos.
-c– — Counter32. Un número de 32 bits con un valor mínimo de 0 y un
valor máximo de 232 - 1. Cuando se alcanza el valor máximo, los contadores
se reinicia a 0 y comienzo otra vez.
-g– — Indicador. Un número de 32 bits con un valor mínimo de 0 y un
valor máximo de 232 - 1. El número puede aumentar o disminuir a voluntad.
Por ejemplo, la velocidad de la interfaz en un router se mide usando un tipo
de objeto del indicador.
-o– — Cadena de octetos. Una cadena de octetos — en la notación
hexadecimal — usada para representar a las direcciones físicas.
-d– — Cadena de visualización. Una cadena de octetos — en la notación
del texto — usada para representar las cadenas de texto.
-ipv4– — Versión IP direccionamiento 4.
-oid– — Identificación de objeto
• Utilice val el argumento para especificar el valor del ID del objeto para
extraer.
Cómo Configurar la Creación de Scripts de Cisco IOS con Tcl
Esta sección contiene las siguientes tareas:
•
Habilitando el shell Tcl y con el CLI a los comandos Enter (requeridos)
•
Usando el shell Tcl para acceder los objetos del SNMP MIB (opcionales)
•
Scripts TCL predefinido que se ejecuta (opcional)
Habilitando el shell y usar Tcl el CLI a los comandos Enter
Realice esta tarea de habilitar el shell interactivo Tcl y de ingresar los comandos Tcl línea por línea con el prompt del Cisco IOS
CLI. Los pasos opcionales incluyen especificar una ubicación predeterminada para los archivos de codificación y especificar un
script de la inicialización.
PASOS SUMARIOS
1. enable
2. configure terminal
3. scripting tcl encdir location-url
4. scripting tcl init init-url
5. scripting tcl low-memory bytes
6. exit
7. tclsh
8. Ingrese el sintaxis requerido del lenguaje del comando Tcl.
9." ios_config "cmd“cmd-option”
10. socket -myaddr addr- myport port -myvrf vrf-table-name host port
11 socket --server myaddr addr -myvrf vrf-table-name port
12. fconfigure channelname -remote []host port-broadcastboolean vrf []vrf_table_name
13. udp_open -ipv6 port
14. udp_peek calcetín buffersize
15. exec "exec-cmd“
16. exit
PASOS DETALLADOS
Paso 1
Comando o acción
Propósito
enable
Habilita el modo EXEC
privilegiado.
Example:
Router> enable
Paso 2
configure terminal
Example:
Router# configure terminal
Paso 3
scripting tcl encdir location-url
Example:
Router(config)# scripting tcl encdir
tftp://10.18.117.23/enctcl/
Paso 4
scripting tcl init init-url
Paso 5
scripting tcl low-memory bytes
• Ingrese su
contraseña si se le
pide que lo haga.
(Opcional) Ingresa en
el modo de
configuración global.
• Realice el
paso 2 al paso 6 si
usted está
utilizando los
archivos de la
codificación, un
script de la
inicialización, o
ambos.
(Opcional) especifica
la ubicación
predeterminada de los
archivos externos de
la codificación usados
por el comando
encoding Tcl.
(Opcional) Especifica
que se ejecute un
Example:
script de inicialización
Router(config)# scripting tcl init
ftp://user:password@172.17.40.3/tclscript/initf cuando se habilite el
shell Tcl.
iles3.tcl
Example:
Router(config)# scripting tcl low-memory
33117513
(Opcional) especifica
una memoria de la
marca de la memoria
del punto más bajo
gratis para las
aplicaciones basado
en Tcl. El umbral de la
memoria se puede fijar
dondequiera entre 04294967295 bytes.
Observesi RAM
libre del mínimo
cae debajo de
este umbral, el
TCL aborta el
script actual.
Esto evita que
el intérprete Tcl
afectar un
aparato
demasiado
RAM y cause
un crash al
router.
Paso 6
exit
Example:
Router(config)# exit
Paso 7
tclsh
Example:
Router# tclsh
Paso 8
Ingresar la sintaxis requerida del lenguaje de comandos
Tcl.
Example:
Router(tcl)# proc get_bri {}
Paso 9
ios_config "cmd" "cmd-option"
Example:
Router(tcl)# ios_config "interface Ethernet
2/0" "no keepalive"
(Opcional) Sale del
modo de configuración
global y vuelve al
modo EXEC
privilegiado.
Habilita el shell
interactivo de Tcl e
ingresa al modo de
configuración de Tcl.
Los comandos
ingresados en el modo
de configuración Tcl
se envían primero al
intérprete interactivo
Tcl. Si el comando no
es un comando Tcl
válido, entonces se
envía al parser de la
CLI.
(Opcional) modifica la
configuración del
router usando un
script Tcl
especificando el
comando Tcl
ios_config con los
comandos CLI y las
opciones. Todos los
argumentos y
comandos del
submode se deben
ingresar en la misma
línea que el comando
de configuración CLI.
• En este
ejemplo, el primer
argumento en las
citas configura una
interfaz de
Ethernet y ingresa
al modo de
configuración de la
interfaz. El
segundo
argumento en las
citas fija la opción
de keepalive. Si
estas dos
declaraciones CLI
fueran ingresadas
en las líneas de
comando
separadas Tcl, la
configuración no
trabajaría.
Paso 10 socket -myaddr addr -myport port -myvrf vrftable-name host port
Example:
Router(tcl)# socket -myaddr 10.4.9.34 -myport
12345 -myvrf testvrf 12346
Especifica el socket
del cliente y permite
que un intérprete TCL
conecte vía el TCP
sobre IPv4/IPv6 y abre
una conexión de red
TCP. Usted puede
especificar un puerto y
un host para conectar
con; debe haber un
servidor para validar
las conexiones en
este puerto.
• -myaddr addr
— Domain Name o
dirección IP
numérica de la
interfaz de la red
del client cara
requerida para la
conexión. Utilice
esta opción
especialmente si la
máquina del
cliente tiene
interfaces de Red
múltiple.
• -myport port
— número del
puerto que se
requiere para la
conexión del
cliente.
• -myvrf []
vrf_table_name—
especifica el
nombre de la tabla
del vrf. Si la tabla
del vrf no se
configura, después
el comando
volverá un
TCL_ERROR.
Paso 11 socket -server -myaddr addr -myvrf vrf-table-
Especifica el socket
del servidor y permite
que un intérprete TCL
Example:
Router(tcl)# socket -server test -myvrf testvrf conecte vía el TCP
sobre IPv4/IPv6 y abre
12348
una conexión de red
TCP. Si el puerto es
cero, el Cisco IOS
afectará un aparato un
puerto libre al socket
del servidor usando
fconfigure el
comando de leer sock0 el argumento.
name port
• -myaddr addr
— Domain Name o
dirección IP
numérica de la
interfaz de la red
del client cara
requerida para la
conexión. Utilice
esta opción
especialmente si la
máquina del
cliente tiene
interfaces de Red
múltiple.
• -myvrf vrf —
especifica el
nombre de la tabla
del vrf. Si la tabla
del vrf no se
configura, después
el comando
volverá un
TCL_ERROR y
añadir al final del
fichero “no puede
obtener la tabla ID
VRF para
VRF_table_name”
al resultado del
intérprete.
Paso 12 fconfigure channelname -remote [host port] broadcast boolean -vrf [vrf_table_name]
Example:
Router(tcl)# fconfigure sock1 -vrf vrf1 -remote
[list 10.4.9.37 56009] -broadcast 1
Especifica las
opciones en un canal.
• En caso de los
socketes UDP que
se crean usando
udp_open, el
socket UDP se
puede asociar a un
VRF usando
fconfigure el
comando.
• Este comando
se puede también
utilizar para
visualizar las
propiedades del
canal.
• -broadcast —
los permisos o
inhabilitan la
difusión.
Paso 13 udp_open -ipv6 port
Example:
Router(tcl)# udp_open -ipv6 56005
Paso 14 udp_peek sock -buffersize buffer-size
Example:
Router(tcl)# udp_peek sock0 -buffersize 100
Paso 15 exec "exec-cmd"
Abre un socket UDP.
• Si se especifica
un puerto el socket
UDP será abierto
en ese puerto. Si
no el sistema
elegirá un puerto y
usted puede
utilizar fconfigure
el comando de
obtener el número
del puerto, si
procede. Si -ipv6
el argumento se
especifica, el
socket será abierto
especificando la
familia de
protocolos
AF_INET6.
Permisos que miran a
escondidas en un
socket UDP.
• -buffersize
buffer-size —
especifica el
buffersize.
(Opcional) ejecuta los
comandos del modo
Example:
Router(tcl)# exec "show interfaces"
EXEC del Cisco IOS
CLI de un script Tcl
especificando el
comando exec Tcl con
los comandos CLI.
• En este
ejemplo, la
información de la
interfaz para el
router se visualiza.
Paso 16 exit
Example:
Router(tcl)# exit
Sale del modo de
configuración de Tcl y
vuelve al modo EXEC
privilegiado.
Ejemplos
La información hecha salir (parcial) siguiente de las demostraciones de la muestra sobre la interfaz de Ethernet 0 en el router.
show interfaces El comando se ha ejecutado del modo de configuración Tcl.
Router# tclsh
Router(tcl)# exec "show interfaces"
Ethernet 0 is up, line protocol is up
Hardware is MCI Ethernet, address is 0000.0c00.750c (bia 0000.0c00.750c)
Internet address is 10.108.28.8, subnet mask is 255.255.255.0
MTU 1500 bytes, BW 10000 Kbit, DLY 100000 usec, rely 255/255, load 1/255
Encapsulation ARPA, loopback not set, keepalive set (10 sec)
ARP type: ARPA, ARP Timeout 4:00:00
Last input 0:00:00, output 0:00:00, output hang never
Last clearing of "show interface" counters 0:00:00
Output queue 0/40, 0 drops; input queue 0/75, 0 drops
Five minute input rate 0 bits/sec, 0 packets/sec
Five minute output rate 2000 bits/sec, 4 packets/sec
1127576 packets input, 447251251 bytes, 0 no buffer
Received 354125 broadcasts, 0 runts, 0 giants, 57186* throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
5332142 packets output, 496316039 bytes, 0 underruns
0 output errors, 432 collisions, 0 interface resets, 0 restarts
.
.
.
Consejos de Troubleshooting
Utilice el comando puts Tcl en un script Tcl a la ejecución del comando trace.
Usando el shell Tcl para acceder los objetos del SNMP MIB
Realice esta tarea de habilitar el shell interactivo Tcl y de ingresar los comandos Tcl de realizar las acciones en los objetos de
MIB.
Prerrequisitos
La configuración de la comunidad SNMP debe existir en la configuración corriente del router.
PASOS SUMARIOS
1. enable
2. configure terminal
3. scripting tcl encdir location-url
4. scripting tcl init init-url
5. exit
6. tclsh
7. Ingrese cualquier sintaxis requerido del lenguaje del comando Tcl.
8. snmp_getbulk community-string non-repeatersmax-repetitions oid []oid2 oid3...
9. snmp_getid community-string
10. snmp_getnext community-string oid []oid2 oid3...
11 snmp_getone community-string oid []oid2 oid3...
12. snmp_setany community-string oid type val []oid2 type2 val2...
13. exit
PASOS DETALLADOS
Paso 1
Comando o acción
Propósito
enable
Habilita el modo
EXEC privilegiado.
Example:
Router> enable
Paso 2
configure terminal
Example:
Router# configure terminal
Paso 3
scripting tcl encdir location-url
Example:
Router(config)# scripting tcl encdir
tftp://10.18.117.23/enctcl/
Paso 4
scripting tcl init init-url
Example:
Router(config)# scripting tcl init
ftp://user:password@172.17.40.3/tclscript/initf
iles3.tcl
Paso 5
exit
Example:
Router(config)# exit
Paso 6
tclsh
Example:
Router# tclsh
• Ingrese su
contraseña si se
le pide que lo
haga.
(Opcional) Ingresa
en el modo de
configuración global.
• Realice el
paso 2 al paso 5
realizan el paso 2
al paso 5 si usted
está utilizando los
archivos de la
codificación, un
script de la
inicialización, o
ambos.
(Opcional) especifica
la ubicación
predeterminada de
los archivos externos
de la codificación
usados por el
comando encoding
Tcl.
(Opcional) Especifica
que se ejecute un
script de
inicialización cuando
se habilite el shell
Tcl.
(Opcional) Sale del
modo de
configuración global
y vuelve al modo
EXEC privilegiado.
Habilita el shell
interactivo de Tcl e
ingresa al modo de
configuración de Tcl.
Paso 7
Ingresar la sintaxis requerida del lenguaje de comandos Tcl. Los comandos
ingresados en el
Example:
modo de
Router(tcl)# proc get_bri {}
configuración Tcl se
envían primero al
intérprete interactivo
Tcl. Si el comando
no es un comando
válido Tcl, se envía
al analizador de
sintaxis CLI.
Paso 8
snmp_getbulk community-string non-repeaters max- (Opcional) extrae un
repetitions oid [oid2 oid3...]
gran parte de una
Example:
Router(tcl)# snmp_getbulk public 1 3
1.3.6.1.2.1.1.1 1.3.6.1.2.1.10.18.8.1.1
tabla MIB.
• Utilice
community-string
el argumento
para especificar
la comunidad
SNMP de quien
los objetos serán
extraídos.
• Utilice nonrepeaters el
argumento para
especificar el
número de
objetos que se
puedan extraer
con una
operación del Get
Next.
• Utilice maxrepetitions el
argumento para
especificar el
número máximo
de operaciones
del Get Next para
intentar mientras
que intenta
extraer los
objetos restantes.
• Utilice oid el
argumento para
especificar el ID
del objeto para
extraer.
Paso 9
snmp_getid community-string
Example:
Router(tcl)# snmp_getid private
(Opcional) extrae las
variables siguientes
de la entidad SNMP
en el router:
sysDesrc.0,
sysObjectID.0,
sysUpTime.0,
sysContact.0,
sysName.0, y
sysLocation.0.
• Utilice
community-string
el argumento
para especificar
la comunidad
SNMP de quien
los objetos serán
extraídos.
Paso 10 snmp_getnext community-string oid [oid2 oid3...] (Opcional) Recupera
un conjunto de
Example:
Router(tcl)# snmp_getnext public
1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.2.0
variables individuales
de una tabla MIB.
• Utilice
community-string
el argumento
para especificar
la comunidad
SNMP de quien
los objetos serán
extraídos.
• Utilice oid el
argumento para
especificar el ID
del objeto para
extraer.
Paso 11 snmp_getone community-string oid [oid2 oid3...]
Example:
Router(tcl)# snmp_getone public
1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.2.0
(Opcional) Recupera
un conjunto de
variables individuales
de una tabla MIB.
• Utilice
community-string
el argumento
para especificar
la comunidad
SNMP de quien
los objetos serán
extraídos.
• Utilice oid el
argumento para
especificar el ID
del objeto para
extraer.
Paso 12 snmp_setany community-string oid type val [oid2
type2 val2...]
Example:
Router(tcl)# snmp_setany private
1.3.6.1.2.1.1.5.0 -d TCL-SNMP_TEST
(Opcional) extrae los
valores actuales de
las variables
especificadas de una
tabla MIB y después
realiza una petición
del conjunto en las
variables.
• Utilice
community-string
el argumento
para especificar
la comunidad
SNMP de quien
los valores de los
objetos serán
extraídos y
entonces fijar.
• Utilice oid el
argumento para
especificar el ID
del objeto para
extraer y para
fijar.
• Utilice type el
argumento para
especificar el tipo
de objeto para
extraer y para
fijar.
• Utilice val el
argumento para
especificar el
valor del objeto
que se extraerá y
después para
fijar.
Paso 13 exit
Sale del modo de
configuración de Tcl
y vuelve al modo
EXEC privilegiado.
Example:
Router(tcl)# exit
Consejos de Troubleshooting
Utilice el comando puts Tcl en un script Tcl a la ejecución del comando trace.
Scripts TCL predefinido que se ejecuta
Realice esta tarea optativa de ejecutar un script predefinido Tcl en Cisco IOS Software.
Prerrequisitos
Antes de realizar esta tarea, usted debe crear un script Tcl que pueda ejecutarse en el Cisco IOS Software. El script Tcl se
puede transferir a la memoria de Flash interno usando cualquier sistema de archivos que el Cisco IOS File System (IF) soporte,
incluyendo el TFTP, FTP, y el RCP. El script Tcl puede también ser originado de un lugar remoto.
PASOS SUMARIOS
1. enable
2. tclsh
3. Ingrese el comando source Tcl con el nombre de fichero y la trayectoria.
4. exit
PASOS DETALLADOS
Comando o acción
Propósito
Paso enable
1
Habilita el modo EXEC privilegiado.
Paso tclsh
2
Habilita el shell interactivo de Tcl e ingresa al modo de
configuración de Tcl.
•
Example:
Router> enable
Example:
Router# tclsh
Ingrese su contraseña si se le pide que lo haga.
Paso Ingrese el comando source
Los comandos ingresados en el modo de
3
Tcl con el nombre de fichero y configuración Tcl se envían primero al intérprete
la trayectoria.
interactivo Tcl. Si el comando no es un comando Tcl
válido, entonces se envía al parser de la CLI.
Example:
Router(tcl)# source
slot0:test.tcl
Paso exit
4
Example:
Router(tcl)# exit
Sale del modo de configuración de Tcl y vuelve al
modo EXEC privilegiado.
Ejemplos de Configuración de Cisco IOS Scripting with Tcl
Esta sección proporciona los siguientes ejemplos de configuración:
•
Ejemplo: Script Tcl usando el comando show interfaces
•
Ejemplo: Script Tcl para el soporte S TP
•
Ejemplo: Script Tcl para el acceso del SNMP MIB
Ejemplo: Script Tcl usando el comando show interfaces
Usando el motor de la expresión normal Tcl, los scripts pueden filtrar la información específica show de los comandos y
presentarla en un formato de encargo. Lo que sigue es un ejemplo de filtrar show interfaces la salida de comando y de crear
una lista separado por coma de interfaces BRI en el router:
tclsh
proc get_bri {} {
set check ""
set int_out [exec "show interfaces"]
foreach int [regexp -all -line -inline "(^BRI\[0-9]/\[0-9])" $int_out] {
if {![string equal $check $int]} {
if {[info exists bri_out]} {
append bri_out "," $int
} else {
set bri_out $int
}
set check $int
}
}
return $bri_out
}
Ejemplo: Script Tcl para el soporte S TP
El script siguiente Tcl es útil para enviar los correos electrónicos de un router.
##
## Place required comments here!!!
##
package provide sendmail 2.0
# Sendmail procedure for Support
namespace eval ::sendmail {
namespace export initialize configure sendmessage sendfile
array set ::sendmail::sendmail {
smtphost
mailhub
from
""
friendly
""
}
proc configure {} {}
proc initialize {smtphost from friendly} {
variable sendmail
if {[string length $smtphost]} then {
set sendmail(smtphost) $smtphost
}
if {[string length $from]} then {
set sendmail(from) $from
}
if {[string length $friendly]} then {
set sendmail(friendly) $friendly
}
}
proc sendmessage {toList subject body {tcl_trace 0}} {
variable sendmail
set smtphost $sendmail(smtphost)
set from $sendmail(from)
set friendly $sendmail(friendly)
if {$trace} then {
puts stdout "Connecting to $smtphost:25"
}
set sockid [socket $smtphost 25]
## DEBUG
set status [catch {
puts $sockid "HELO $smtphost"
flush $sockid
set result [gets $sockid]
if {$trace} then {
puts stdout "HELO $smtphost\n\t$result"
}
puts $sockid "MAIL From:<$from>"
flush $sockid
set result [gets $sockid]
if {$trace} then {
puts stdout "MAIL From:<$from>\n\t$result"
}
foreach to $toList {
puts $sockid "RCPT To:<$to>"
flush $sockid
}
set result [gets $sockid]
if {$trace} then {
puts stdout "RCPT To:<$to>\n\t$result"
}
puts
$sockid "DATA "
flush $sockid
set result [gets
$sockid]
if {$trace} then {
puts stdout "DATA \n\t$result"
}
puts
$sockid "From: $friendly <$from>"
foreach to $toList {
puts $sockid "To:<$to>"
}
puts
$sockid "Subject: $subject"
puts
$sockid "\n"
foreach line [split $body "\n"] {
puts
$sockid " $line"
}
puts
$sockid "."
puts
$sockid "QUIT"
flush $sockid
set result [gets
$sockid]
if {$trace} then {
puts stdout "QUIT\n\t$result"
}
} result]
catch {close $sockid }
if {$status} then {
return -code error $result
}
return
}
proc sendfile {toList filename subject {tcl_trace 0}} {
set fd [open $filename r]
sendmessage $toList $subject [read $fd] $trace
return
}
}
Ejemplo: Script Tcl para el acceso del SNMP MIB
Usando el shell Tcl, los comandos Tcl pueden realizar las acciones en el MIB. El siguiente ejemplo muestra cómo configurar las
cadenas del acceso de la comunidad para permitir el acceso al SNMP. El acceso público es solo lectura, pero el acceso privado
es de lectura/grabación. El siguiente ejemplo muestra cómo extraer un gran parte de una tabla inmediatamente usando
snmp_getbulk la extensión del comando Tcl.
Dos argumentos, non-repeaters y max-repetitions, deben ser fijados cuando snmp_getbulk se publica un comando. nonrepeaters El argumento especifica que los primeros objetos N deben ser extraídos con un funcionamiento simple
snmp_getnext . max-repetitions El argumento especifica que hasta M snmp_getnext las operaciones deben ser intentadas
extraer los objetos restantes.
En este ejemplo, se utilizan tres atascamientos — el sysUpTime (1.3.6.1.2.1.1.2.0), el ifDescr (1.3.6.1.2.1.2.2.1.2), y el ifType
(1.3.6.1.2.1.2.2.1.3) —. El número total de vinculaciones de variable pedidas es dado por la fórmula N + (M * R), donde está el
número N de NON-repetidores (en este ejemplo 1), M es las MAX-repeticiones (en este ejemplo 5), y R es el número de los
objetos de la petición (en este caso 2, de ifDescr y de ifType). Usando la fórmula, 1 + (5 * 2) iguales 11; y éste es el número total
de vinculaciones de variable que se puedan extraer por este snmp_getbulk comando de la petición.
Los resultados de la muestra para las variables individuales incluyen un valor extraído de sysUpTime.0 que es 1336090, donde
está la unidad en los milisegundos. El valor extraído de ifDescr.1 (la primera descripción de la interfaz) es FastEthernet0/0, y el
valor extraído de ifType.1 (el primer tipo de interfaz) es 6, que corresponde al tipo del ethernetCsmacd.
snmp-server community public RO
snmp-server community private RW
tclsh
snmp_getbulk public 1 5 1.3.6.1.2.1.1.2.0
1.3.6.1.2.1.2.2.1.2
1.3.6.1.2.1.2.2.1.3
{<obj oid='sysUpTime.0' val='1336090'/>}
{<obj oid='ifDescr.1' val='FastEthernet0/0'/>}
{<obj oid='ifType.1' val='6'/>}
{<obj oid='ifDescr.2' val='FastEthernet1/0'/>}
{<obj oid='ifType.2' val='6'/>}
{<obj oid='ifDescr.3' val='Ethernet2/0'/>}
{<obj oid='ifType.3' val='6'/>}
{<obj oid='ifDescr.4' val='Ethernet2/1'/>}
{<obj oid='ifType.4' val='6'/>}
{<obj oid='ifDescr.5' val='Ethernet2/2'/>}
{<obj oid='ifType.5' val='6'/>}
El siguiente ejemplo muestra cómo extraer las variables sysDescr.0, sysObjectID.0, sysUpTime.0, sysContact.0, sysName.0, y
sysLocation.0 — en este ejemplo mostrado como system.1.0, system.2.0, system.3.0, system.4.0, system.5.0, y system.6.0 —
de la entidad SNMP en el router que usa snmp_getid la extensión del comando Tcl.
tclsh
snmp_getid public
{<obj oid='system.1.0' val='Cisco Internetwork Operating System Software
Cisco IOS(tm) 7200 Software (C7200-IK9S-M), Experimental Version 12.3(20030507:225511)
[geotpi2itd1 124]
Copyright (c) 1986-2003 by Cisco Systems, Inc.
Compiled Wed 21-May-03 16:16 by engineer'/>}
{<obj oid='system.2.0' val='products.223'/>}
{<obj oid='sysUpTime.0' val='6664317'/>}
{<obj oid='system.4.0' val='1-800-553-2447 - phone the TAC'/>}
{<obj oid='system.5.0' val='c7200.myCompany.com'/>}
{<obj oid='system.6.0' val='Bldg 24, San Jose, CA'/>}
El siguiente ejemplo muestra cómo extraer un conjunto de las variables individuales de la entidad SNMP en el router que usa
snmp_getnext la extensión del comando Tcl:
snmp_getnext public 1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.2.0
{<obj oid='system.2.0' val='products.223'/>}
{<obj oid='sysUpTime.0' val='6683320'/>}
El siguiente ejemplo muestra cómo extraer un conjunto de las variables individuales de la entidad SNMP en el router que usa
snmp_getone la extensión del comando Tcl:
snmp_getone public 1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.2.0
{<obj oid='system.1.0' val='Cisco Internetwork Operating System Software
Cisco IOS(tm) 7200 Software (C7200-IK9S-M), Experimental Version 12.3(20030507:225511)
[geotpi2itd1 124]
Copyright (c) 1986-2003 by Cisco Systems, Inc.
Compiled Wed 21-May-03 16:16 by engineer'/>}
{<obj oid='system.2.0' val='products.223'/>}
El siguiente ejemplo muestra cómo cambiar algo en la configuración del router que usa snmp_setany la extensión del comando
Tcl. En este ejemplo, el nombre de host del router se cambia a TCLSNMP-HOST.
tclsh
snmp_setany private 1.3.6.1.2.1.1.5.0 -d TCLSNMP-HOST
{<obj oid='system.5.0' val='TCLSNMP-HOST'/>}
Referencias adicionales
Las secciones siguientes proporcionan las referencias relacionadas con el scripting del Cisco IOS con la característica Tcl.
Documentos Relacionados
Tema relacionado
Título del documento
Embedded Syslog Manager (ESM)
Módulo integrado del
administrador del Syslog
Comandos de la Administración de redes (Tcl incluyendo y comandos Referencia de Comandos de
logging): sintaxis de comandos completa, valores predeterminados,
Administración de Redes de
modo de comandos, historial de comandos, pautas de uso y ejemplos Cisco IOS
Estándares
Estándares
Título
Esta función no soporta estándares nuevos o modificados, y el soporte de los estándares
existentes no ha sido modificado por ella.
—
MIB
MIB
Link del MIB
Esta función no soporta
MIBs nuevas o modificadas,
y el soporte para las MIBs
existentes no ha sido
modificado por esta función.
Para localizar y descargar MIB de plataformas, versiones de Cisco IOS
y conjuntos de funciones seleccionados, utilice Cisco MIB Locator, que
se encuentra en la siguiente URL:
RFC
http://www.cisco.com/cisco/web/LA/support/index.html
RFC
Título
Esta función no soporta RFCs nuevos o modificados, y el soporte de los RFCs existentes no
ha sido modificado por ella.
—
Asistencia Técnica
Descripción
Link
El sitio Web de soporte técnico de Cisco
http://www.cisco.com/cisco/web/LA/support/index.html
proporciona los recursos en línea extensos,
incluyendo la documentación y las
herramientas para localizar averías y resolver
los problemas técnicos con los Productos
Cisco y las Tecnologías.
Para recibir la Seguridad y la información
técnica sobre sus Productos, usted puede
inscribir a los diversos servicios, tales como la
herramienta de alerta del producto (accedida
de los Field Notice), el hoja informativa de los
servicios técnicos de Cisco, y alimentaciones
realmente simples de la sindicación (RSS).
El acceso a la mayoría de las herramientas en
el sitio Web de soporte técnico de Cisco
requiere una identificación del usuario y una
contraseña del cisco.com.
Información sobre la Función Cisco IOS Scripting with Tcl
El cuadro 4 enumera el historial de la versión para esta característica.
Puede que no estén disponibles todos los comandos en su versión de software de Cisco IOS. Para la información de versión
sobre un comando específico, vea la documentación de referencia de comandos.
Utilice el Cisco Feature Navigator para encontrar la información sobre el soporte del Soporte de la plataforma y de la imagen del
software. Cisco Feature Navigator le permite determinar qué imágenes de Cisco IOS y Catalyst OS Software soportan una
versión de software, un conjunto de funciones o una plataforma específica. Para acceder a Cisco Feature Navigator, vaya a
http://www.cisco.com/go/cfn. Una cuenta en el cisco.com no se requiere.
Observelas listas del cuadro 4 solamente la versión de Cisco IOS Software que introdujo el soporte para una característica
dada en un tren de versión del Cisco IOS Software dado. A menos que se indique lo contrario, las versiones posteriores de
dicha serie de versiones de software de Cisco IOS también soportan esa función.
Nombre de
la función
Versiones
Información sobre la Función
Cisco IOS
12,3(2)T
Scripting with 12.3(7)T
Tcl
12.2(25)S
12.2(33)SXH
12.2(33)SRC
12.2(33)SB
Cisco IOS
XE 3.1.0SG
El scripting del Cisco IOS con la característica Tcl proporciona la
capacidad de funcionar con los comandos de la versión 8.3.4 Tcl de
la interfaz de la línea de comandos del Cisco IOS.
Acceso del
SNMP MIB
Tcl
12.3(7)T
12.2(25)S
12.2(33)SXH
12.2(33)SRC
12.2(33)SB
Cisco IOS
XE 3.1.0SG
La característica de acceso del SNMP MIB Tcl presenta a un
conjunto Unix-como de los comandos SNMP de hacer el acceso a
los objetos de MIB del Simple Network Management Protocol
(SNMP) más fácil.
15.1(1)T
La característica Tcl UDP y VRF proporciona el soporte para los
socketes UDP en IOS Tcl.
Soporte TCL
UDP y VRF
Se han insertado o modificado los siguientes comandos: scripting
tcl encdir scripting tcl init scripting tcl low-memory tclquit tclsh.
La sección siguiente tiene más información:
•
Usando el shell Tcl para acceder los objetos del SNMP MIB.
Se han insertado o modificado los siguientes comandos: fconfigure,
socket udp_open udp_peek.
Glosario
ESM — Administrador integrado del Syslog.
IVR — Respuesta de voz interactiva.
MIB — Management Information Base.
SNMP — Protocolo administración de red simple.
Tcl — Tool Command Language.
La notaconsidera los términos de funcionamiento entre redes y las siglas para los términos no incluidos en este glosario.
Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks
can be found at www.cisco.com/go/trademarks. Third party trademarks mentioned are the property of their respective owners. The use of the word
partner does not imply a partnership relationship between Cisco and any other company. (1005R)
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and
figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and
coincidental.
© 2003-2010 Cisco Systems, Inc. All rights reserved.
© 1992-2013 Cisco Systems Inc. Todos los Derechos Reservados.
Fecha de Generación del PDF: 2 Agosto 2013
http://www.cisco.com/cisco/web/support/LA/107/1073/1073582_nm_script_tcl_ps6922_TSD_Products_Configuration_Guide_Chapter.html
Descargar