- play_arrow Overview
- play_arrow Junos Automation Scripts Overview
- play_arrow Junos XML Management Protocol and Junos XML API Overview
-
- play_arrow Automation Scripting Using XSLT
- play_arrow XSLT Overview
- play_arrow Standard XPath and XSLT Functions Used in Automation Scripts
- play_arrow Standard XSLT Elements and Attributes Used in Automation Scripts
-
- play_arrow Automation Scripting Using SLAX
- play_arrow SLAX Overview
- SLAX Overview
- SLAX Syntax Rules Overview
- SLAX Elements and Element Attributes Overview
- SLAX Elements as Function Arguments
- Understanding SLAX Default Namespaces
- XPath Expressions Overview for SLAX
- SLAX Templates Overview
- SLAX Functions Overview
- SLAX Parameters Overview
- SLAX Variables Overview
- SLAX Statements Overview
- XSLT Elements Without SLAX Equivalents
- SLAX Operators
- play_arrow SLAX Statements
- append
- apply-imports
- apply-templates
- attribute
- attribute-set
- call
- copy-node
- copy-of
- decimal-format
- element
- else
- else if
- expr
- fallback
- for
- for-each
- function
- if
- import
- key
- match
- message
- mode
- mvar
- number
- output-method
- param
- preserve-space
- priority
- processing-instruction
- result
- set
- sort
- strip-space
- template
- terminate
- trace
- uexpr
- use-attribute-sets
- var
- version
- while
- with
- play_arrow The libslax Distribution for Automation Scripting
- libslax Distribution Overview
- libslax Library and Extension Libraries Overview
- Download and Install the libslax Distribution
- libslax Default Extension Libraries: bit, curl, db, os, and xutil
- Understanding the SLAX Processor (slaxproc)
- How to Use the SLAX Processor (slaxproc)
- SLAX Debugger, Profiler, and callflow
-
- play_arrow Automation Scripting Using Python
- play_arrow Python Overview
- Understanding Python Automation Scripts for Junos Devices
- Requirements for Executing Python Automation Scripts on Junos Devices
- Overview of Python Modules on Junos Devices
- How to Use Python Interactive Mode on Devices Running Junos OS
- How to Use the psutil Module to Retrieve Process and System Information on Devices Running Junos OS
- How to Use the Requests Library for Python on Devices Running Junos OS
- IPv6 Support in Python Automation Scripts
- How to Specify the Routing Instance in Python 3 Applications on Devices Running Junos OS Evolved
-
- play_arrow Automation Script Input
- play_arrow Global Parameters in Automation Scripts
-
- play_arrow Extension Functions and Named Templates for Automation Scripts
- play_arrow Extension Functions for Automation Scripting
- play_arrow Extension Functions in the jcs and slax Namespaces
- base64-decode() Function (SLAX)
- base64-encode() Function (SLAX)
- break-lines() Function (SLAX and XSLT)
- close() Function (SLAX and XSLT)
- dampen() Function (Python, SLAX, and XSLT)
- document() Function (SLAX)
- emit_error() Function (Python)
- emit_snmp_attributes Function (Python)
- emit_warning() Function (Python)
- empty() Function (SLAX and XSLT)
- evaluate() Function (SLAX)
- execute() Function (SLAX and XSLT)
- first-of() Function (SLAX and XSLT)
- get-command() Function (SLAX)
- get-hello() Function (SLAX and XSLT)
- get-input() Function (SLAX and XSLT) and get_input() (Python)
- get-protocol() Function (SLAX and XSLT)
- get-secret() Function (SLAX and XSLT) and get_secret() (Python)
- get_snmp_action() Function (Python)
- get_snmp_oid() Function (Python)
- hostname() Function (Python, SLAX, and XSLT)
- invoke() Function (SLAX and XSLT)
- open() Function (SLAX and XSLT)
- output() Function (Python, SLAX, and XSLT)
- parse-ip() Function (SLAX and XSLT) and parse_ip() (Python)
- printf() Function (Python, SLAX, and XSLT)
- progress() Function (Python, SLAX, and XSLT)
- regex() Function (SLAX and XSLT)
- set_routing_instance() Function (Python)
- sleep() Function (SLAX and XSLT)
- split() Function (SLAX and XSLT)
- sysctl() Function (Python, SLAX, and XSLT)
- syslog() Function (Python, SLAX, and XSLT)
- trace() Function (Python, SLAX, and XSLT)
- play_arrow Named Templates for Automation Scripting
- play_arrow Named Templates in the jcs Namespace
-
- play_arrow Manage Automation Scripts
- play_arrow Store and Enable Scripts
- play_arrow Configure a Remote Source for Scripts
- play_arrow Configure the Session Protocol for Scripts
- play_arrow Control Execution of Scripts
- play_arrow Synchronize Scripts Between Routing Engines
- play_arrow Convert Scripts Between SLAX and XSLT
-
- play_arrow Commit Scripts
- play_arrow Commit Scripts Overview
- play_arrow Create and Execute Commit Scripts
- Required Boilerplate for Commit Scripts
- XML Syntax for Common Commit Script Tasks
- Design Considerations for Commit Scripts
- How to Avoid Potential Conflicts When Using Multiple Commit Scripts
- Line-by-Line Explanation of Sample Commit Scripts
- Control the Execution of Commit Scripts During Commit Operations
- Control the Execution of Commit Scripts in the QFabric System
- Configure Checksum Hashes for a Commit Script
- How to Process Large Configurations Against Commit Scripts
- Example: Retrieve the Pre-Inheritance Candidate Configuration in a Commit Script
- play_arrow Generate a Custom Warning, Error, or System Log Message Using Commit Scripts
- Overview of Generating Custom Warning, Error, and System Log Messages
- Generate a Custom Warning, Error, or System Log Message in Commit Scripts
- SLAX and XSLT Commit Script Tag Elements to Use When Generating Messages
- Example: Generate a Custom Warning Message
- Example: Generate a Custom Error Message
- Example: Generate a Custom System Log Message
- play_arrow Generate Persistent or Transient Configuration Changes Using Commit Scripts
- Overview of Generating Persistent or Transient Configuration Changes Using Commit Scripts
- Generate a Persistent or Transient Configuration Change in SLAX and XSLT Commit Scripts
- Generate a Persistent or Transient Configuration Change in Python Commit Scripts
- SLAX and XSLT Commit Script Tag Elements to Use When Generating Persistent and Transient Configuration Changes
- Remove a Persistent or Transient Configuration Change Using Commit Scripts
- Example: Generate Persistent and Transient Configuration Changes Using Commit Scripts
- play_arrow Create Custom Configuration Syntax with Commit Script Macros
- Overview of Creating Custom Configuration Syntax with Commit Script Macros
- Create Custom Configuration Syntax with Commit Script Macros
- Create a Commit Script Macro to Read the Custom Syntax and Generate Related Configuration Statements
- Example: Creating Custom Configuration Syntax with Commit Script Macros
- play_arrow Commit Script Examples
- Example: Adding a Final then accept Term to a Firewall
- Example: Adding T1 Interfaces to a RIP Group
- Example: Assign a Classifier Using a Commit Script
- Example: Automatically Configure Logical Interfaces and IP Addresses
- Example: Configure Administrative Groups for LSPs
- Example: Configure a Default Encapsulation Type
- Example: Configure Dual Routing Engines
- Example: Configure an Interior Gateway Protocol on an Interface
- Example: Control IS-IS and MPLS Interfaces
- Example: Control LDP Configuration
- Example: Create a Complex Configuration Based on a Simple Interface Configuration
- Example: Impose a Minimum MTU Setting
- Example: Limit the Number of ATM Virtual Circuits
- Example: Limit the Number of E1 Interfaces
- Example: Load a Base Configuration
- Example: Prepend a Global Policy
- Example: Prevent Import of the Full Routing Table
- Example: Require Internal Clocking on T1 Interfaces
- Example: Require and Restrict Configuration Statements
- play_arrow Junos XML and XSLT Tag Elements Used in Commit Scripts
- play_arrow Troubleshoot Commit Scripts
-
- play_arrow Op Scripts
- play_arrow Op Scripts Overview
- play_arrow Create and Execute Op Scripts
- Required Boilerplate for Op Scripts
- Map Operational Mode Commands and Output Fields to Junos XML Notation
- How to Use RPCs and Operational Mode Commands in Op Scripts
- Declare and Use Command-Line Arguments in Op Scripts
- Configure Help Text for Op Scripts
- Define Operational Mode Commands to Allow in an Op Script
- Enable an Op Script and Define a Script Alias
- Configure Checksum Hashes for an Op Script
- Execute an Op Script on the Local Device
- Execute an Op Script from a Remote Site
- Disable an Op Script
- play_arrow Op Script Examples
- Change the Configuration Using SLAX and XSLT Scripts
- Example: Change the Configuration Using SLAX and XSLT Op Scripts
- Example: Change the Configuration Using Python Op Scripts
- Example: Customize Output of the show interfaces terse Command Using an Op Script
- Example: Display DNS Hostname Information Using an Op Script
- Example: Find LSPs to Multiple Destinations Using an Op Script
- Example: Restart an FPC Using an Op Script
- Example: Export Files Using an Op Script
- Example: Import Files Using an Op Script
- Example: Search Files Using an Op Script
- play_arrow Provision Services Using Service Template Automation
- play_arrow Troubleshoot Op Scripts
-
- play_arrow SNMP Scripts
- play_arrow SNMP Scripts Overview
- play_arrow Create and Execute SNMP Scripts
- play_arrow SNMP Script Example
- play_arrow Troubleshoot SNMP Scripts
-
- play_arrow Configuration Statements and Operational Commands
ON THIS PAGE
Example: Configuring an Event Policy to Upload Files
This example configures event policy actions that upload relevant files to a specified location for analysis.
Requirements
Before you begin:
Configure the destinations that you will reference in the event policy. See Example: Define Destinations for File Archiving by Event Policies.
Configure the general event policy and triggering events.
Overview
When an event policy action generates output files, you can archive the files for later analysis. Similarly, you might want to archive system files, including system log files, core files, and configuration files, from the time an event occurs. You can configure an event policy to upload existing system files or to upload the output files generated from an invoked event-script or command at the time an event occurs. This section outlines the configuration required for uploading each of these output files using an event policy.
When you configure an event policy to upload files, the device uploads the relevant files to the
location referenced in the destination
statement configured for
that event policy action. You must specify a destination name that is configured at
the [edit event-options destinations]
hierarchy level.
In this example, policy1
consists of the following
statements, where e1 is the triggering event.
The example then configures the event policy to upload a log file
and the committed configuration file as well as the output files generated
from the execute-commands
and event-script
actions.
[edit event-options policy policy1] events e1; then { execute-commands { commands { "show interfaces brief ge-*"; } } event-script event-script1; }
Configuration
- CLI Quick Configuration
- Uploading System Files
- Uploading Command Output Files
- Uploading Event Script Output Files
- Results
CLI Quick Configuration
To quickly configure this example, copy the following
commands, paste them in a text file, remove any line breaks, change
any details necessary to match your network configuration, and then
copy and paste the commands into the CLI at the [edit]
hierarchy
level:
set event-options policy policy1 then upload filename /var/log/messages destination mgmt-archives transfer-delay 4 set event-options policy policy1 then upload filename /var/log/messages destination mgmt-archives retry-count 5 retry-interval 4 set event-options policy policy1 then upload filename /var/log/messages destination mgmt-archives user-name admin set event-options policy policy1 then upload filename /var/log/messages destination mgmt-server set event-options policy policy1 then upload filename committed destination mgmt-archives set event-options policy policy1 then execute-commands output-filename ge-interfaces set event-options policy policy1 then execute-commands destination mgmt-archives transfer-delay 5 set event-options policy policy1 then execute-commands destination mgmt-archives retry-count 5 retry-interval 4 set event-options policy policy1 then event-script event-script1 output-filename policy1-script-output set event-options policy policy1 then event-script event-script1 destination mgmt-archives transfer-delay 5 set event-options policy policy1 then event-script event-script1 destination mgmt-archives retry-count 5 retry-interval 4
Uploading System Files
Step-by-Step Procedure
Configure the event policy policy1
to upload
the system file /var/log/messages to the archive sites mgmt-archives and mgmt-server. Additionally,
upload the committed configuration to the archive site mgmt-archives.
The destination archive sites should already be configured at the [edit event-options destinations]
hierarchy level
Configure the
upload
statement, and include the file to archive and the destination archive site.content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set upload filename /var/log/messages destination mgmt-archives bsmith@R1# set upload filename /var/log/messages destination mgmt-server
To upload the committed configuration file, specify the filename value as committed.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set upload filename committed destination mgmt-archives
(Optional) Configure the transfer delay associated with each file and destination.
The following command configures a 4-second transfer delay when the /var/log/messages file is uploaded to the mgmt-archives destination. If you also configure a transfer delay for the destination, the total delay is the sum of the two delays.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set upload filename /var/log/messages destination mgmt-archives transfer-delay 4
(Optional) Configure the retry count and retry interval associated with each file and destination.
In this example, if the /var/log/messages file fails to upload to the mgmt-archives site, the system attempts the upload up to 5 more times and waits 4 seconds in between each attempt.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set upload filename /var/log/messages destination mgmt-archives retry-count 5 retry-interval 4
(Optional) Configure the username for the file's upload operation. The system uploads the file using the privileges of the specified user.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set upload filename /var/log/messages destination mgmt-archives user-name admin
Commit the configuration.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# commit
Uploading Command Output Files
Step-by-Step Procedure
When the event policy invokes the execute-commands
action, the command output can be written to a file. Configure the
event policy policy1
to write command output to a file
and upload the generated file to the destination mgmt-archives, which
is already configured at the [edit event-options destinations]
hierarchy level.
Define a descriptive string that will be included in the filename of the output file.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set execute-commands output-filename ge-interfaces
Configure the
destination
statement to upload the generated file to the specified archive site.content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set execute-commands destination mgmt-archives
(Optional) Configure the transfer delay for the upload operation, which in this example is 5 seconds.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set execute-commands destination mgmt-archives transfer-delay 5
(Optional) Configure the retry count and retry interval for the upload operation.
In this example, if the upload operation fails, the system attempts the upload up to 5 more times and waits 4 seconds in between each attempt.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set execute-commands destination mgmt-archives retry-count 5 retry-interval 4
Commit the configuration.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# commit
Uploading Event Script Output Files
Step-by-Step Procedure
When the event policy invokes an event script, the script
output can be written to a file. Configure the event policy policy1
to write event-script output to a file and upload the generated
file to the destination mgmt-archives, which is already configured
at the [edit event-options destinations]
hierarchy level.
In this example, the event policy invokes an event script named event-script1.
Define a descriptive string that will be included in the filename of the output file.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set event-script event-script1 output-filename policy1-script-output
Configure the
destination
statement to upload the generated file to the desired archive site.content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set event-script event-script1 destination mgmt-archives
(Optional) Configure the transfer delay for the upload operation, which in this example is 5 seconds.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set event-script event-script1 destination mgmt-archives transfer-delay 5
(Optional) Configure the retry count and retry interval for the upload operation.
In this example, if the upload fails, the system attempts the upload up to 5 more times and waits 4 seconds in between each attempt.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# set event-script event-script1 destination mgmt-archives retry-count 5 retry-interval 4
Commit the configuration.
content_copy zoom_out_map[edit event-options policy policy1 then] bsmith@R1# commit
Results
[edit event-options policy policy1 then] upload filename /var/log/messages destination mgmt-archives { user-name admin; transfer-delay 4; retry-count 5 retry-interval 4; } upload filename /var/log/messages destination mgmt-server upload filename committed destination mgmt-archives; execute-commands { commands { "show interfaces brief ge-*"; } output-filename ge-interfaces; destination mgmt-archives { transfer-delay 5; retry-count 5 retry-interval 4; } } event-script event-script1 { output-filename policy1-script-output; destination mgmt-archives { transfer-delay 5; retry-count 5 retry-interval 4; } }
Verification
Verifying the Upload
Purpose
When the configured event triggers the event policy, the system uploads the generated output files and the specified system files to the URL defined in the mgmt-archives destination. On the destination server, verify that all files have been uploaded.
Action
On the destination server, verify that all uploaded files are present.
% ls R1_20111209_213452_ge-interfaces R1_20111209_213409_juniper.conf.gz R1_20111209_212941_messages R1_20111209_212619_policy1-script-output
Meaning
Note that the filename format for each file includes the device name, the filename, and the date and time stamp.
If all of the uploaded files are present, the event policy and upload actions are working correctly. If none of the files are uploaded, verify that the destination is configured and that the archive site URL and any required password is entered correctly. For information about configuring destinations, see Example: Define Destinations for File Archiving by Event Policies. If a portion of the files are missing, configure a longer transfer delay and increase the retry count and retry interval for those files.