Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在事件策略中执行事件脚本

事件脚本 是可扩展样式表语言转换 (XSLT) 脚本、样式表语言替代语法 (SLAX) 脚本或事件策略在触发时可以执行的 Python 脚本。事件脚本可执行通过 Junos XML 或 Junos XML 协议远程过程调用 (RPC) 提供的任何功能。此外,您还可以将定义的一组参数传递给事件脚本。

事件脚本可以构建并运行操作模式命令、接收命令输出、检查输出并确定下一个相应操作。此过程可重复,直至确定故障源。然后,脚本可在 CLI 上向您报告故障源或自动更改设备配置。

您可以配置执行事件脚本的事件策略,并将这些脚本的输出上传到指定位置进行分析。要配置此类策略,请在 [edit event-options] 层次结构级别包括以下语句:

在该语句中 events ,您可以列出多个事件。如果发生一个或多个列出的事件,则事件进程将执行在层次结构下配置的 then 操作。事件策略操作可以包括执行一个或多个事件脚本,该脚本通过包括语 event-script filename 句来配置。事件进程将按照在配置中显示的顺序运行脚本。您在语句中 event-script 引用的脚本必须位于设备硬盘上的 /var/db/scripts/event 目录中,或闪存内存中的 /config/scripts/event/ directory。 此外,事件脚本必须在层次结构级别启用 [edit event-options event-script file] 。有关更多信息,请参阅 Store and Enable Junos Automation Scripts

注意:

如果脚本位于闪存内存中,则必须在层次结构级别上配置 load-scripts-from-flash 语句 [edit system scripts]

注意:

有关在运行 Junos OS 的设备上执行 Python 自动化脚本时的要求和限制的详细信息,请参阅 在 Junos 设备上执行 Python 自动化脚本的要求

您可以将语句配置 arguments 为将参数传递至事件脚本作为名称/值对。该参数值可包含包含有关触发事件或其他已接收事件的信息的变量。然后,事件脚本可在执行过程中参考此信息。有关将参数传递至事件脚本的详细信息,请参阅 配置事件策略以将参数传递至事件脚本

您可以配置事件脚本,将其输出写入文件。事件进程执行脚本时,它会将带有脚本输出的文件上传到语句中 destination 指定的位置。语句中 destination 包含在层次结构级别上配置的目标 [edit event-options destinations] 名称。有关更多信息,请参阅 示例:按事件策略定义文件存档目标

在语句中 output-filename ,定义文件名中包含的描述性字符串。每个上传的文件还包括文件名中的主机名和时间戳,以确保每个文件名都是唯一的。如果在 1 秒内多次触发策略,则将索引号附加到文件名中,以确保文件名仍然唯一。索引号范围为 001 到 999。

从 Junos OS 版本 14.1R3 开始,将更改事件脚本生成的命令输出文件的命名约定。当事件策略执行事件脚本且脚本生成输出文件时,该文件的名称取决于设备上运行的 Junos OS 版本。在 Junos OS 14.1R3 版本之前,文件名具有以下命名约定:

从 Junos OS 14.1R3 版开始,文件名会在时间戳之后放置 output-filename 字符串。

例如,在运行 Junos OS 版本 14.1R3 或更高版本的名为 r1 的设备上,如果将 output-filename 语句配置为 ifl 事件,并且此事件策略在 1 秒内触发三次,则文件命名为:

  • r1_20060623_132333_ifl事件

  • r1_20060623_132333_ifl events_001

  • r1_20060623_132333_ifl-events_002

对于和destinationoutput-filename语句,有四种配置场景:

  • 您可以省略 destinationoutput-filename 语句。当事件脚本无输出时,此选项很有意义。例如,事件脚本可能仅 request 执行无输出的命令。

  • 您可以同时 destination 包含和 output-filename 语句。如果在配置中包含语 output-filename 句,则配置中还必须包含语 destination 句。在这种情况下,脚本输出将重定向到输出文件,并将该文件发送至配置中指定的目标。

  • 您可在配置中包含语 destination 句。您可以在配置中省略语 output-filename 句,而是在事件脚本中指定输出文件名。脚本输出将发送至配置中指定的目标。如果配置中未包含语 destination 句,则不会上传脚本输出。

    在这种情况下,事件策略将从事件脚本中提取文件名。事件脚本将输出文件名写为 STDOUT。要在事件脚本中使用的 XML 语法包括:

    <event-script-output-filename> 元素必须是父标记中 <output> 的第一个儿童标记。

    在名为 device2的设备上,使用目标 host配置事件脚本操作,然后省略 output-filename 语句。将目标 host 定义为 ftp://user@device1//tmp。

    脚本1.xsl 事件脚本中,将以下输出写入 STDOUT

    配置 policy1 事件策略,如下所示:

    在此示例中, /var/cmd.txt 文件驻留在设备2 上。事件策略使用文件传输协议 (FTP) 将此文件上传到设备1 上的 /tmp 目录。

    事件策略将读取中的输出文件名/var/cmd.txtSTDOUT。然后,事件策略会将/var/cmd.txt 文件上传到配置的目标,即设备1 上的 /tmp 目录。该事件策略将/var/cmd.txt 文件重命名为 device2_YYYYMMDD_HHMMSS_cmd.txt_index-number

  • 您可以包括和output-filename语句,destination还可以在事件脚本中直接指定输出文件名。如果这样做,配置中指定的输出文件名将覆盖事件脚本中指定的输出文件名。

事件脚本输出的默认格式和唯一格式是 Junos 可扩展标记语言 (XML)。

注意:

事件脚本输出始终以 XML 格式发出,即使您在层次结构下[edit event-options policy policy-name then event-script filename]配置output-format text语句也是如此。

发布历史记录表
释放
描述
14.1R3
从 Junos OS 版本 14.1R3 开始,将更改事件脚本生成的命令输出文件的命名约定。