Guía de Configuración de Administración de Redes de Cisco IOS, Versión 12.2SR
Cisco IOS Scripting with Tcl
2 Agosto 2013 - Traducción Automática | Otras Versiones: PDFpdf 259 KB | Inglés (19 Octubre 2009) | Comentarios

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.


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

Comando options Tcl del cuadro 1 que se comporta diferentemente en Cisco IOS Software 

Comando
Palabra 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 usandoupdate 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

   

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 usandoupdate el comando.

history

!n

 

Parcialmente

!nEl acceso directo no trabaja en Cisco IOS Software. Utilicehistory el comando Tcl conredo nla palabra clave.

load

   

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 Unix-como 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.

Extensiones de encargo del comando Tcl del Cisco IOS del cuadro 2

Comando
Descripción

fconfigure -remote []host port-broadcastboolean 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 buffer-size

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.

Extensiones de encargo del comando Tcl del Cisco IOS del cuadro 3 para el acceso del SNMP MIB 

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.

Utilice oid el argumento para especificar el ID del objeto para extraer.

snmp_getid

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 "cmdcmd-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

 
Comando o acción
Propósito

Paso 1 

enable

Example:

Router> enable

Habilita el modo EXEC privilegiado.

Ingrese su contraseña si se le pide que lo haga.

Paso 2 

configure terminal

Example:

Router# configure terminal

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

Paso 3 

scripting tcl encdir location-url

Example:

Router(config)# scripting tcl encdir tftp://10.18.117.23/enctcl/

(Opcional) especifica la ubicación predeterminada de los archivos externos de la codificación usados por el comando encoding Tcl.

Paso 4 

scripting tcl init init-url

Example:

Router(config)# scripting tcl init ftp://user:password@172.17.40.3/tclscript/initf iles3.tcl

(Opcional) Especifica que se ejecute un script de inicialización cuando se habilite el shell Tcl.

Paso 5 

scripting tcl low-memory bytes

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 0-4294967295 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

(Opcional) Sale del modo de configuración global y vuelve al modo EXEC privilegiado.

Paso 7 

tclsh

Example:

Router# tclsh

Habilita el shell interactivo de Tcl e ingresa al modo de configuración de Tcl.

Paso 8 

Ingresar la sintaxis requerida del lenguaje de comandos Tcl.

Example:

Router(tcl)# proc get_bri {}

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.

Paso 9 

ios_config "cmd" "cmd-option"

Example:

Router(tcl)# ios_config "interface Ethernet 2/0" "no keepalive"

(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 vrf-table-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-name port

Example:

Router(tcl)# socket -server test -myvrf testvrf 12348

Especifica el socket del servidor y permite que un intérprete TCL conecte vía el TCP sobre IPv4/IPv6 y abre 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.

-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

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.

Paso 14 

udp_peek sock -buffersize buffer-size

Example:

Router(tcl)# udp_peek sock0 -buffersize 100

Permisos que miran a escondidas en un socket UDP.

-buffersize buffer-size — especifica el buffersize.

Paso 15 

exec "exec-cmd"

Example:

Router(tcl)# exec "show interfaces"

(Opcional) ejecuta los comandos del modo 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...

11snmp_getone community-string oid []oid2 oid3...

12. snmp_setany community-string oid type val []oid2 type2 val2...

13. exit

PASOS DETALLADOS

 
Comando o acción
Propósito

Paso 1 

enable

Example:

Router> enable

Habilita el modo EXEC privilegiado.

Ingrese su contraseña si se le pide que lo haga.

Paso 2 

configure terminal

Example:

Router# configure terminal

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

Paso 3 

scripting tcl encdir location-url

Example:

Router(config)# scripting tcl encdir tftp://10.18.117.23/enctcl/

(Opcional) especifica la ubicación predeterminada de los archivos externos de la codificación usados por el comando encoding Tcl.

Paso 4 

scripting tcl init init-url

Example:

Router(config)# scripting tcl init ftp://user:password@172.17.40.3/tclscript/initf iles3.tcl

(Opcional) Especifica que se ejecute un script de inicialización cuando se habilite el shell Tcl.

Paso 5 

exit

Example:

Router(config)# exit

(Opcional) Sale del modo de configuración global y vuelve al modo EXEC privilegiado.

Paso 6 

tclsh

Example:

Router# tclsh

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.

Example:

Router(tcl)# proc get_bri {}

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 válido Tcl, se envía al analizador de sintaxis CLI.

Paso 8 

snmp_getbulk community-string non-repeaters max-repetitions oid [oid2 oid3...]

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

(Opcional) extrae un gran parte de una tabla MIB.

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.

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

Example:

Router(tcl)# snmp_getnext 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 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

Example:

Router(tcl)# exit

Sale del modo de configuración de Tcl y vuelve al modo EXEC privilegiado.

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 1 

enable

Example:

Router> enable

Habilita el modo EXEC privilegiado.

Ingrese su contraseña si se le pide que lo haga.

Paso 2 

tclsh

Example:

Router# tclsh

Habilita el shell interactivo de Tcl e ingresa al modo de configuración de Tcl.

Paso 3 

Ingrese el comando source Tcl con el nombre de fichero y la trayectoria.

Example:

Router(tcl)# source slot0:test.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.

Paso 4 

exit

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. non-repeaters 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 logging): sintaxis de comandos completa, valores predeterminados, modo de comandos, historial de comandos, pautas de uso y ejemplos

Referencia de Comandos de Administración de Redes de 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:

http://www.cisco.com/cisco/web/LA/support/index.html


RFC

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

http://www.cisco.com/cisco/web/LA/support/index.html


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.


Información de la característica del cuadro 4 para el scripting del Cisco IOS con el Tcl

Nombre de la función
Versiones
Información sobre la Función

Cisco IOS Scripting with Tcl

12,3(2)T
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

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.

Se han insertado o modificado los siguientes comandos: scripting tcl encdir scripting tcl init scripting tcl low-memory tclquit tclsh.

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.

La sección siguiente tiene más información:

Usando el shell Tcl para acceder los objetos del SNMP MIB.

Soporte TCL UDP y VRF

15.1(1)T

La característica Tcl UDP y VRF proporciona el soporte para los socketes UDP en IOS Tcl.

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.