ON THIS PAGE
Synchronize Scripts 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.
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 following sections outline the different methods for synchronizing scripts:
Configuring Script Synchronization Between Routing Engines for Commit Synchronize Operations
You can configure a device running Junos OS to synchronize all
commit, event, lib, op, and SNMP scripts from the requesting Routing
Engine to the other Routing Engine every time you issue the commit
synchronize
command to commit and synchronize the configuration.
To automatically synchronize scripts between Routing
Engines during a commit synchronize
operation:
When you issue the first and subsequent commit synchronize
commands, the device performs a commit check on the requesting Routing
Engine, synchronizes all scripts to the other Routing Engine, synchronizes,
performs a commit check, and commits the configuration on the responding
Routing Engine, and finally commits the configuration on the requesting
Routing Engine. 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.
Configuring the synchronize
statement causes the
device to synchronize all scripts even if they have not been updated
since the last synchronization. If the device has a large number of
scripts that are infrequently updated, it might be more suitable to
synchronize scripts either manually using the request system
scripts synchronize
operational mode command or on a per-commit
basis using the commit synchronize scripts
command.
Synchronizing Scripts Between Routing Engines on a Per-Commit Basis
You can synchronize all commit, event, lib, op, and SNMP scripts
from the requesting Routing Engine to the other Routing Engine on
a device running Junos OS on a per-commit basis using the commit
synchronize scripts
command when you commit and synchronize
the configuration. This is an alternative to configuring the device
to synchronize scripts every time you execute a commit synchronize
operation.
To synchronize scripts between Routing Engines on a per-commit basis:
When you issue the commit synchronize scripts
command,
the device performs a commit check on the requesting Routing Engine,
synchronizes all scripts to the other Routing Engine, synchronizes,
performs a commit check, and commits the configuration on the responding
Routing Engine, and finally commits the configuration on the requesting
Routing Engine. 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.
Synchronizing Scripts Between Routing Engines from Operational Mode
You can manually synchronize scripts from the requesting Routing
Engine to the other Routing Engine on a device running Junos OS by
using the request system scripts synchronize
operational
mode command. 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 the filename or on the timestamp of
the file.
To manually synchronize scripts between Routing Engines,
issue the request system scripts synchronize
command with
the desired options.
user@host> request system scripts synchronize (all | commit | event | lib | op | snmp) <file filename> <newer-than time>
Specify all
to synchronize all scripts present on
the requesting Routing Engine to the responding Routing Engine. Specify commit
, event
, lib
, op
, or snmp
to synchronize all scripts of the given type to the other
Routing Engine. Include the file
option or the newer-than
option to narrow the scope to only synchronize scripts with the
specified filename or date criteria. The format for the newer-than
argument is YYYY-MM-DD.HH:MM:SS.
For example, the following command synchronizes all commit, event, lib, op, and SNMP scripts that have a timestamp newer than 2012-05-15:
user@host> request system scripts synchronize all newer-than 2012-05-15
The following command synchronizes a single op script with the filename vpn-info.slax.
user@host> request system scripts synchronize op file vpn-info.slax
A synchronize operation might fail if, for example, you request to synchronize a script that does not exist or if the responding Routing Engine cannot handle the request at that time, because it is performing other CPU-intensive operations. If the synchronize operation fails, the device generates an error message.
The following command requests to synchronize a single event script, but the script does not exist in the event scripts directory, so the device issues an error.
user@host> request system scripts synchronize event file nonexistent-file.slax
error: Invalid directory: No such file or directory warning: No script will be pushed to other RE
The following command requests to synchronize a single event script, but the responding Routing Engine does not have the resources to perform the synchronization, so the device issues an error. The device also logs a UI_SCRIPTS_COPY_FAILED error in the system log file with a severity level of error.
user@host> request system scripts synchronize event file ospf-neighbor.slax
error: Unable to copy scripts to re: re1
Synchronizing a Script Between Routing Engines After a Refresh
You can manually refresh a single script from a remote URL and
synchronize the updated script to the other Routing Engine on a device
running Junos OS by using the request system scripts refresh-from
operational mode command with the sync
option.
To manually refresh a single script from a remote source
and then synchronize the script to the other Routing Engine, issue
the request system scripts refresh-from
command with the sync
option, and specify the script type, filename, and remote
URL. Specify the URL as an HTTP URL, FTP URL, or secure copy (scp)-style
remote file specification.
user@host> request system scripts refresh-from (commit | event | op | snmp) file filename url url sync
The system uses the script type to determine the directory on
the device where the script resides. If the load-scripts-from-flash
statement is present in the configuration for the Routing Engine,
the system refreshes the script in flash memory. Otherwise, the system
refreshes the script on the hard disk.