要使用 Junos 自动化脚本,必须将脚本复制到 Junos 设备并在配置中启用它。,如以下步骤所述。默认情况下,脚本存储在设备硬盘上的 /var/db/scripts 目录中,并在适合脚本类型的子目录下执行。还可以将脚本存储在闪存中,位于与脚本类型相对应的子目录下的 /config/scripts 目录中。
- 创建脚本。
- 将脚本复制到设备上该脚本类型的相应目录。只有属于 Junos OS
super-user
登录类的用户才能访问和编辑运行 Junos OS 的设备上的脚本目录中的文件。
表 1:脚本位置
脚本类型 |
硬盘位置 |
闪存位置 |
commit 脚本 |
/var/db/scripts/commit |
/config/scripts/commit |
事件脚本 |
/var/db/scripts/event |
/config/scripts/event |
Op 脚本 |
/var/db/scripts/op |
/config/scripts/op |
Snmp 脚本 |
/var/db/scripts/snmp |
/config/scripts/snmp |
注意:
如果设备具有双路由引擎,并且您希望使脚本能够在两个路由引擎上执行,则可以将脚本复制到两个路由引擎上的相应目录,也可以发出 commit synchronize scripts
命令以同步配置并将脚本复制到其他路由引擎作为提交作的一部分。
注意:
Junos OS 支持对脚本目录中的文件使用符号链接。但是,仅当脚本经过签名时,设备才会在目标位置执行脚本。
- 对于未签名的 Python 脚本,请确保脚本满足以下要求:
注意:
从 Junos OS 16.1R3 版开始,未签名的 Python 脚本必须由 root 或 Junos OS super-user
登录类中的用户拥有,并且只有文件所有者才能对文件具有写入权限。Junos OS 16.1R3 之前的版本,未签名的 Python 脚本只能由 root 用户拥有。
注意:
若要使不属于文件的用户或组类的用户能够执行未签名的 Python 自动化脚本,脚本的文件权限必须包括对其他人的读取权限。
- 通过在该脚本类型的相应层次结构级别包含
file filename
语句来启用脚本。
commit script
- 在[edit system scripts commit]
层次结构级别包括file filename
语句。有关说明,请参阅在提交作期间控制提交脚本的执行。
op script
- 在[edit system scripts op]
层次结构级别包括file filename
语句。有关说明,请参阅启用 op 脚本和定义脚本别名。
event script
- 在[edit event-options event-script]
层次结构级别包括file filename
语句。有关说明,请参阅启用和执行事件脚本。
snmp script
- 在[edit system scripts snmp]
层次结构级别包括file filename
语句。有关说明,请参阅启用 SNMP 脚本。
- 如果将脚本存储在闪存中并从闪存加载这些脚本,请在
[edit system scripts]
层次结构级别包含该load-scripts-from-flash
语句。有关在闪存中存储脚本的详细信息,请参阅在闪存中存储脚本。
[edit]
user@host# set system scripts load-scripts-from-flash
- 对于 Python 事件和 SNMP 脚本,请配置脚本在其访问权限下执行的用户。
对于事件脚本:
[edit event-options event-script]
user@host# set file filename python-script-user username
对于 SNMP 脚本:
[edit system scripts snmp]
user@host# set file filename python-script-user username
注意:
如果未配置该 python-script-user
语句,则默认情况下,Junos OS 将以通用非特权用户和组 nobody
的访问权限执行 Python 事件和 SNMP 脚本。交互式 Python 脚本(如 commit 和 op 脚本)使用执行调用脚本的命令或作的用户的访问权限运行。
注意:
从 Junos OS 16.1R3 版开始,您可以使用授权用户的访问权限执行未签名的 Python 提交、事件、作和 SNMP 脚本。在 Junos OS 16.1R2 版及更早版本中,所有未签名的 Python 自动化脚本都将使用用户和组 nobody
的访问权限执行。
- 提交配置。
新启用的提交脚本在当前提交作期间执行。提交作完成后,已启用的事件脚本将加载到内存中,并可由为响应系统日志事件而触发的事件策略执行。有关更多信息,请参阅 在事件策略中执行事件脚本。提交作完成后,可以在设备上执行 op 脚本。有关更多信息,请参阅 在本地设备上执行 op 脚本。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。
16.1R3
从 Junos OS 16.1R3 版开始,未签名的 Python 脚本必须由 root 或 Junos OS
super-user
登录类中的用户拥有,并且只有文件所有者才能对文件具有写入权限。
16.1R3
从 Junos OS 16.1R3 版开始,您可以使用授权用户的访问权限执行未签名的 Python 提交、事件、作和 SNMP 脚本。