Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例:使用 Op 脚本自定义 show interfaces terse 命令的输出

此示例使用 操作脚本 自定义命令的 show interfaces terse 输出。提供了 XSLT 脚本的逐行说明。

要求

此示例使用运行 Junos OS 的设备。

概述和操作脚本

默认情况下,命令的 show interfaces terse 布局如下所示:

在 Junos XML 中,输出字段表示如下:

XSLT 语法

以下脚本自定义命令的 show interfaces terse 输出。提供了脚本的逐行说明。

逐行讲解

第 1 行至第 7 行、第 20 行以及第 105 行和第 106 行是您在每个操作脚本中都包含的样板。有关更多信息,请参阅 Op Scripts 所需的样板

第 8 行至第 17 行声明称为的 arguments变量,其中包含脚本的两个参数: interfaceprotocol。此可变声明将引起 interface 并在 protocol 命令行界面 (CLI) 中显示为脚本可用参数。

第 18 行和第 19 行声明脚本的两个参数,对应于在第 8 行到 17 行中创建的参数。参数名称必须与参数名称完全匹配。

第 20 行至第 31 行声明名为 rpc的变量。命令 show interfaces terse 分配给 rpc 变量。如果在 interface 执行脚本时包含该参数,则该参数的值(接口名称)将传递到脚本中。

第 32 行声明名为 out 的变量,并适用于 rpc 执行变量 (show interfaces terse 命令)。

第 33 行指定正在修改的命令的show interfaces输出级别为terse(相对extensivedetail于 , 等)。

第 34 行至第 39 行指定,如果在执行脚本时包含protocol该参数,并且您指定的协议值是 inetinet6mplstnpintf 该模板将应用于输出中协议类型的每个实例。

第 40 行至第 47 行指定,如果在执行脚本时包含protocol该参数,并且您指定的协议值是生成错误消息以外的mplsinetinet6tnp其他内容,

第 48 行到 52 行指定,如果执行脚本时未包含 protocol 该参数, intf 则该模板将应用于输出中的每个逻辑接口。

第 53 行到 56 行是关闭标记。

第 57 行打开 intf 了模板。此模板可自定义命令的 show interfaces terse 输出。

第 58 行声明称为的 status变量,其目的是指定如何报告接口状态。第 59 行到 78 行包含一个 <xsl:choose> 说明,该指令通过考虑所有可能的状态来填充 status 变量。一如既往地在 XSLT 中执行评估为 TRUE 的第一个 <xsl:when> 指令,其余部分将忽略。每个说明都 <xsl:when> 单独解释。

第 60 行至第 62 行指定,如果 admin-status 已“打开”且 oper-status “已启动”,则不会生成输出。在这种情况下, status 变量仍然为空。

第 63 行至第 65 行指定如果 admin-status 为“停机”, status 则变量包含文本 offline

第 66 行至第 68 行指定如果 oper-status 为“停机”且物理接口 admin-status 为“停机”, status 则变量包含文本 p-offline。(../ 选择物理接口。)

第 69 行至第 71 行指定如果 oper-status 为“停机”且物理接口 oper-status 为“停机”, status 则变量包含文本 p-down。(../ 选择物理接口。)

第 72 行至第 74 行指定如果 oper-status 为“停机”, status 则变量包含文本 down

第 75 行至第 77 行指定,如果没有测试案例属实, status 则变量包含 oper-statusadmin-status 与斜线串联,作为分隔器。

第 78 行和第 79 行是关闭标记。

第 80 行到 89 行定义一个称为的 desc变量。该 <xsl:choose> 说明通过选择可用的最特定接口说明来填充变量。如果配置中包含逻辑接口说明,则用于填充 desc 变量。如果未使用,则使用物理接口说明。如果配置中未包含物理接口说明,则变量仍为空。一如既往地在 XSLT 中执行评估为 TRUE 的第一个 <xsl:when> 指令,其余部分将忽略。

脚本的其余部分指定了操作模式输出的显示方式。

第 90 行和第 91 行指定在输出中首先显示逻辑接口名称。

第 92 行到 94 行测试变量是否 desc 具有非零数字符。如果字符数超过零,则接口说明显示在字段的标准位置 admin-status 中。(在标准输出中 admin-status ,字段显示在第二行。)

第 95 行指定下一个变量中定义的 status 接口状态显示。

第 96 行到 103 行指定,如果在执行脚本时包含 protocol 该参数,将仅显示与配置的协议的接口。如果未包含该 protocol 参数,将显示所有接口。

第 104 行到 106 行是关闭标记。

SLAX 语法

脚本的 SLAX 版本如下:

配置

程序

逐步过程

要下载、启用和测试脚本:

  1. 将 XSLT 或 SLAX 脚本复制到文本文件中,指定文件 接口.xslinterface.slax ,并将其复制到设备上的 /var/db/scripts/op/ 目录。

  2. 在配置模式下[edit system scripts op],在file层次结构级别和接口.xsl接口.slax 上相应包含语句。

  3. commit and-quit发出 命令提交配置并返回到操作模式。

  4. 执行操作脚本,方法是 op interface 发出操作模式命令。

验证

验证提交脚本输出

目的

验证脚本是否按预期运行。

行动

show interfaces terse发出和op interface操作命令并比较输出。命令show interfaces terse显示标准输出。命令op interface显示自定义输出。

op interface发出不同层次结构级别的操作命令并查看输出。例如: