Understanding Script Synchronization Between Routing Engines
Starting in Junos OS Release 13.2, you can manually synchronize commit, event, lib, op, and SNMP scripts between Routing Engines on a device running Junos OS or configure the device to automatically synchronize scripts between Routing Engines when you commit and synchronize the configuration. When invoked, the device synchronizes the scripts from the Routing Engine on which you execute the request (the requesting Routing Engine) to the other Routing Engine (the responding Routing Engine).
In operational mode, you can manually synchronize scripts from
the requesting Routing Engine to the responding Routing Engine using
the request system scripts synchronize
command. The command
enables you to customize the scope of the synchronization. You can
synchronize a single script, all scripts of a specific type, or all
scripts on the device. You also have the option to synchronize scripts
based on filename or on the timestamp of the file.
In configuration mode, you have the option to synchronize all
scripts when you commit and synchronize the configuration. To synchronize
scripts on a per-commit basis, use the commit synchronize scripts
command when you commit and synchronize the configuration. Alternatively,
you can configure the device to automatically synchronize scripts
from the requesting Routing Engine to the responding Routing Engine
every time you issue a commit synchronize
command. To ensure
that scripts are copied from the requesting Routing Engine to the
responding Routing Engine during a commit synchronize
operation,
configure the synchronize
statement at the [edit system
scripts]
hierarchy level.
When you synchronize the configuration and scripts, the device:
Performs a commit check on the requesting Routing Engine
Synchronizes scripts to the responding Routing Engine
Synchronizes the configuration to the responding Routing Engine
Performs a commit check on the responding Routing Engine
Commits the configuration on the responding Routing Engine
Commits the configuration on the requesting Routing Engine
This process ensures that any commit scripts that are required for a successful commit operation are present on the responding Routing Engine before committing the configuration. If the commit check operation fails for the requesting Routing Engine, the process stops, and the scripts are not copied to the responding Routing Engine. If the commit check or commit operation fails for the responding Routing Engine, the scripts are still synchronized since the synchronization occurs prior to the commit check operation on the responding Routing Engine.
When synchronizing scripts, the device running Junos OS determines
the script source and destination directories based on whether the load-scripts-from-flash
statement is present in the configuration
for each Routing Engine. If the load-scripts-from-flash
statement is configured for the requesting Routing Engine, the device
synchronizes the scripts that are in flash memory. Otherwise, the
device synchronizes the scripts that are on the hard disk. If the load-scripts-from-flash
statement is present in the final configuration
for the responding Routing Engine, the scripts are synchronized to
flash memory. Otherwise, the scripts are synchronized to the hard
disk. The device synchronizes a script regardless of whether it is
enabled in the configuration or has been updated since the last synchronization.
The request system scripts refresh-from
operational mode command enables you to manually
refresh a single script from a remote URL. Starting in Junos OS Release
13.2, you can synchronize the updated script to the other Routing
Engine at the same time by including the sync
option when
you execute the command. When you execute the command, if the load-scripts-from-flash
statement is configured on the Routing
Engine, the script is refreshed in flash memory. Otherwise, the script
is refreshed on the hard disk.