启用和执行事件脚本
事件脚本存储在设备的硬盘中 /var/db/scripts/event directory 中,或存储在 /config/scripts/event directory 中的闪存驱动器上。只有 Junos OS super-user
登录类的用户才能在这些目录中访问和编辑文件。有关设置脚本存储位置的信息,请参阅 闪存中的 存储和启用 Junos 自动化脚本 和 存储脚本。
为防止在运行 Junos OS 的设备上执行未经授权的 Python 代码,未签名的 Python 脚本必须满足某些要求,才能在设备上执行脚本。从 Junos OS 版本 16.1R3 开始,未签名的 Python 脚本必须归 Junos OS super-user
登录类中的 root 或用户所有,并且只有文件所有者才能为该文件写入许可。在 Junos OS 16.1R3 版之前,未签名的 Python 脚本必须仅归 root 用户所有。有关在运行 Junos OS 的设备上执行 Python 自动化脚本的要求的详细信息,请参阅 在 Junos 设备上执行 Python 自动化脚本的要求。
如果设备具有两个路由引擎,并且您想要启用事件脚本在两个路由引擎上执行,则可以将脚本复制到两个路由引擎上的 /var/db/scripts/ event 目录或 /config/scripts/event 目录,或者您可以发出 commit synchronize scripts
命令来同步配置并将脚本复制到其他路由引擎,作为提交操作的一部分。
您必须先启用事件脚本才能执行。要启用事件脚本,请将语句包含 file filename
在 [edit event-options events-script]
层次结构级别,并指定包含事件脚本的文件名称。只有属于 Junos super-user
登录类的用户才能启用事件脚本。
[edit event-options event-script] user@host# set file filename
SLAX 和 Python 脚本必须在配置中的实际脚本名称和文件名中分别包括 .slax 或 .py 文件名扩展。XSLT 脚本不需要文件名扩展,但我们强烈建议您附加 .xsl 扩展。无论您是否选择在文件中包含 .xsl 扩展,您在 [edit event-options event-script file]
层级添加的文件名都必须与目录中的脚本文件名完全匹配。例如,如果 XSLT 脚本文件名是 script1.xsl,则必须在配置层次结构中包含 script1.xsl 以启用脚本:如果 XSLT 脚本文件名是 脚本1,则必须在配置层次结构中包含 脚本1 。
默认情况下,您无法在运行 Junos OS 的设备上执行未签名的 Python 脚本。要允许执行未签名的 Python 自动化脚本,满足 Junos 设备上执行 Python 自动化脚本的要求,必须在层次结构级别配置 language python
或 language python3
语句 [edit system scripts]
。
[edit system scripts] user@host# set language (python | python3)
默认情况下,Junos OS 将执行 Python 事件脚本以及通用、无权权用户和组nobody
的访问权限。从 Junos OS 16.1R3 版开始,您可以指定执行 Python 脚本的访问权限下的用户。要在特定用户的访问权限下执行 Python 事件脚本,请在[edit event-options event-script file filename]
层级配置python-script-user username
语句。
[edit event-options event-script file filename] user@host# set python-script-user username
要使不属于该文件的用户或组类的用户执行未签名的 Python 自动化脚本,脚本的文件权限必须包括其他人的读取权限。
要确定设备上当前启用了哪些事件脚本,请使用 show
命令显示在 [edit event-options event-script]
层次结构级别上配置的文件。
[edit event-options event-script] user@host# show
要确保启用的文件已在设备上,请使用file list /var/run/scripts/event
操作模式命令列出 /var/run/scripts/event/ directory 的内容。
user@host> file list /var/run/scripts/event
发出 commit
命令时,层 [edit event-options event-script]
级配置的事件脚本将放入系统内存并启用执行。提交操作完成后,事件策略可以执行事件脚本以响应事件通知。
super-user
登录类中的 root 或用户所有,并且只有文件所有者才能为该文件写入许可。