Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ejemplo: Personalizar la salida del comando show interfaces concisas mediante un script de operación

En este ejemplo se utiliza un script op para personalizar la salida del show interfaces terse comando. Se proporciona una explicación línea por línea del script XSLT.

Requisitos

En este ejemplo se utiliza un dispositivo que ejecuta Junos OS.

Descripción general y script de operación

De forma predeterminada, el diseño del show interfaces terse comando tiene este aspecto:

En Junos XML, los campos de salida se representan de la siguiente manera:

Sintaxis XSLT

La siguiente secuencia de comandos personaliza el resultado del show interfaces terse comando. Se proporciona una explicación línea por línea del guión.

Explicación línea por línea

Las líneas 1 a 7, 20 y 105 y 106 son las repetitivas que incluye en cada script op. Para obtener más información, consulte Boilerplate requerido para scripts operativos.

Las líneas 8 a 17 declaran una variable llamada arguments, que contiene dos argumentos para el script: interface y protocol. Esta declaración de variable hace que interface y protocol aparezca en la interfaz de línea de comandos (CLI) como argumentos disponibles para el script.

Las líneas 18 y 19 declaran dos parámetros para el script, correspondientes a los argumentos creados en las líneas 8 a 17. Los nombres de los parámetros deben coincidir exactamente con los nombres de los argumentos.

Las líneas 20 a 31 declaran una variable denominada rpc. El show interfaces terse comando se asigna a la rpc variable. Si incluye el argumento al ejecutar el script, el valor del argumento (el interface nombre de la interfaz) se pasa al script.

La línea 32 declara una variable nombrada out y le aplica la ejecución de la rpc variable (show interfaces terse command).

La línea 33 especifica que el nivel de salida del show interfaces comando que se modifica es terse (en contraposición a extensive, , detaily así sucesivamente).

Las líneas 34 a 39 especifican que si incluye el argumento al ejecutar el script y si el protocol valor de protocolo que especifica es inet, , , mplso tnp, inet6la plantilla se aplica a cada instancia de ese tipo de protocolo en la intf salida.

Las líneas 40 a 47 especifican que si incluye el argumento al ejecutar la secuencia de comandos y si el protocol valor de protocolo que especifica es distinto de , , mplso tnp, inet6se genera un mensaje de ineterror.

Las líneas 48 a 52 especifican que si no incluye el argumento al ejecutar el protocol script, la plantilla se aplica a cada interfaz lógica de la intf salida.

Las líneas 53 a 56 son etiquetas de cierre.

La línea 57 abre la intf plantilla. Esta plantilla personaliza la salida del show interfaces terse comando.

La línea 58 declara una variable denominada status, cuyo propósito es especificar cómo se informa del estado de la interfaz. Las líneas 59 a 78 contienen una <xsl:choose> instrucción que rellena la status variable considerando todos los estados posibles. Como siempre en XSLT, se ejecuta la primera <xsl:when> instrucción que se evalúa como TRUE y el resto se ignora. Cada <xsl:when> instrucción se explica por separado.

Las líneas 60 a 62 especifican que si admin-status está "arriba" y oper-status está "arriba", no se genera ningún resultado. En este caso, la status variable permanece vacía.

Las líneas 63 a 65 especifican que si admin-status está 'abajo', la status variable contiene el texto offline.

Las líneas 66 a 68 especifican que si oper-status está "inactiva" y la interfaz admin-status física está "inactiva", la status variable contiene el texto p-offline. ../ ( selecciona la interfaz física.)

Las líneas 69 a 71 especifican que si oper-status está "inactiva" y la interfaz oper-status física está "inactiva", la status variable contiene el texto p-down. ../ ( selecciona la interfaz física.)

Las líneas 72 a 74 especifican que si oper-status está 'abajo', la status variable contiene el texto down.

Las líneas 75 a 77 especifican que si ninguno de los casos de prueba es verdadero, la status variable contiene oper-status y admin-status concatena con una barra diagonal como separador.

Las líneas 78 y 79 son etiquetas de cierre.

Las líneas 80 a 89 definen una variable denominada desc. Una <xsl:choose> instrucción rellena la variable seleccionando la descripción de interfaz más específica disponible. Si se incluye una descripción de interfaz lógica en la configuración, se utiliza para rellenar la desc variable. Si no es así, se utiliza la descripción de la interfaz física. Si no se incluye ninguna descripción de interfaz física en la configuración, la variable permanece vacía. Como siempre en XSLT, se ejecuta la primera <xsl:when> instrucción que se evalúa como TRUE y el resto se ignora.

El resto del script especifica cómo se muestra la salida del modo operativo.

Las líneas 90 y 91 especifican que el nombre de la interfaz lógica se muestra primero en la salida.

Las líneas 92 a 94 prueban si la desc variable tiene un número de caracteres distinto de cero. Si el número de caracteres es mayor que cero, la descripción de la interfaz se muestra en la ubicación estándar del admin-status campo. (En la salida estándar, el admin-status campo se muestra en la segunda línea).

La línea 95 especifica que el estado de la interfaz definido en la status variable se muestra a continuación.

Las líneas 96 a 103 especifican que si incluye el argumento al ejecutar el protocol script, sólo se mostrarán las interfaces con ese protocolo configurado. Si no incluye el protocol argumento, se muestran todas las interfaces.

Las líneas 104 a 106 son etiquetas de cierre.

Sintaxis de SLAX

La versión SLAX del script es la siguiente:

Configuración

Procedimiento

Procedimiento paso a paso

Para descargar, habilitar y probar el script:

  1. Copie el script XSLT o SLAX en un archivo de texto, asigne al archivo el nombre interface.xsl o interface.slax según corresponda y cópielo en el directorio / var/db/scripts/op/ del dispositivo.

  2. En el modo de configuración, incluya la file instrucción en el nivel jerárquico [edit system scripts op] e interface.xsl o interface.slax , según corresponda.

  3. Emita el commit and-quit comando para confirmar la configuración y volver al modo operativo.

  4. Ejecute el script op emitiendo el comando de op interface modo operativo.

Verificación

Comprobación de la salida del script de confirmación

Propósito

Compruebe que el script se comporta como se esperaba.

Acción

Emita los comandos operativos y op interface compare los show interfaces terse resultados. El show interfaces terse comando muestra el resultado estándar. El op interface comando muestra la salida personalizada.

Emita el comando operativo para diferentes niveles de jerarquía y revise el op interface resultado. Por ejemplo: