Enable an Op Script and Define a Script Alias
Operation (op) scripts are stored on a device’s hard disk
in the /var/db/scripts/op directory
or on the flash drive in the /config/scripts/op directory. Only users in the Junos OS super-user
login
class can access and edit files in these directories. For information
about setting the storage location for scripts, see Store and Enable Junos Automation Scripts and Store Scripts in Flash Memory.
To prevent the execution of unauthorized Python code on devices
running Junos OS, unsigned Python scripts must meet certain requirements
before you can execute the scripts on a device. Starting in Junos OS Release 16.1R3, unsigned Python
scripts must be owned by either root or a user in the Junos OS super-user
login class, and only the file owner can have write
permission for the file. Prior to Junos OS
Release 16.1R3, unsigned Python scripts must only be owned by the
root user. For detailed information about the requirements for executing
Python automation scripts on devices running Junos OS, see Requirements for Executing Python Automation Scripts on Junos Devices.
If the device has dual Routing Engines and you want to
enable an op script to execute on both Routing Engines, you can copy
the script to the /var/db/scripts/op or /config/scripts/op directory
on both Routing Engines, or you can issue the commit synchronize
scripts
command to synchronize the configuration and copy the
scripts to the other Routing Engine as part of the commit operation.
You must enable an op script before it can be executed.
To enable an op script, include the file filename
statement at the [edit system scripts op]
hierarchy
level, and specify the name of the file containing the op script.
Only users who belong to the Junos OS super-user
login
class can enable op scripts.
[edit system scripts op] user@host# set file filename
SLAX and Python scripts must include the .slax or .py filename extension, respectively,
in both the actual script name and the filename in the configuration.
XSLT scripts do not require a filename extension, but we strongly
recommend that you append the .xsl extension. Whether or not you choose to include the .xsl extension on the file, the filename that you
add at the [edit system scripts op file]
hierarchy level
must exactly match the filename of the script in the directory. For
example, if the XSLT script filename is script1.xsl, then you must include script1.xsl in the configuration hierarchy to enable the script; likewise, if
the XSLT script filename is script1, then you must include script1 in
the configuration hierarchy.
Optionally, you can define an alias for an op script. To define the alias, include the
command
statement at the [edit system scripts op
file filename]
hierarchy level.
[edit system scripts op file filename] user@host# set command filename-alias
By default, you cannot execute unsigned Python scripts on devices running Junos
OS. To enable the execution of unsigned Python automation scripts that meet
the requirements outlined in Requirements for Executing Python Automation Scripts on Junos Devices, you must configure the language python
or
language python3
statement at the [edit
system scripts]
hierarchy level.
[edit system scripts] user@host# set language (python | python3)
To determine which op scripts are currently enabled on the device, use the show
command to display the files configured at the [edit system scripts op]
hierarchy level.
[edit system scripts op] user@host# show
To ensure that the enabled files are on the device, list the contents of the
/var/run/scripts/op/ directory using the file list
/var/run/scripts/op
operational mode command.
user@host> file list /var/run/scripts/op
To execute the script, you can specify either the op script filename or the alias.
user@host> op (filename | filename-alias)
Change History Table
Feature support is determined by the platform and release you are using. Use Feature Explorer to determine if a feature is supported on your platform.
super-user
login class, and only the file owner can have write
permission for the file.