001 user@cli> op run-on-all target "iad ord mia" command "show version"
002 [processing target iad]
003 [connecting]
004 [executing]
005 [closing]
006 [processing target ord]
007 [connecting]
008 [executing]
009 [closing]
010 [processing target mia]
011 [connecting]
012 [executing]
013 [closing]
014 [begin iad]
015 Hostname: iad
016 Model: m7i
017 JUNOS Base OS boot [9.5I20090330_0030_danai-20]
018 JUNOS Base OS Software Suite [9.5I20090330_0030_danai-20]
019 JUNOS Kernel Software Suite [9.5I20090330_0030_danai-20]
020 JUNOS Crypto Software Suite [9.5I20090330_0030_danai-20]
021 JUNOS Packet Forwarding Engine Support (M/T Common) [9.5I20090330_0030_danai-20]
022 JUNOS Packet Forwarding Engine Support (M7i/M10i) [9.5I20090330_0030_danai-20]
023 JUNOS Online Documentation [9.5I20090330_0030_danai-20]
024 JUNOS Voice Services Container package [9.5I20090330_0030_danai-20]
025 JUNOS Services AACL Container package [9.5I20090330_0030_danai-20]
026 JUNOS Services LL-PDF Container package [9.5I20090330_0030_danai-20]
027 JUNOS Services Stateful Firewall [9.5I20090330_0030_danai-20]
028 JUNOS AppId Services [9.5I20090330_0030_danai-20]
029 JUNOS IDP Services [9.5I20090330_0030_danai-20]
030 JUNOS Routing Software Suite [9.5I20090330_0030_danai-20]
031 [end iad]
032 [begin ord]
033 Hostname: ord
034 Model: m7i
035 JUNOS Base OS boot [9.5I20090330_0030_danai-20]
036 JUNOS Base OS Software Suite [9.5I20090330_0030_danai-20]
037 JUNOS Kernel Software Suite [9.5I20090330_0030_danai-20]
038 JUNOS Crypto Software Suite [9.5I20090330_0030_danai-20]
039 JUNOS Packet Forwarding Engine Support (M/T Common) [9.5I20090330_0030_danai-20]
040 JUNOS Packet Forwarding Engine Support (M7i/M10i) [9.5I20090330_0030_danai-20]
041 JUNOS Online Documentation [9.5I20090330_0030_danai-20]
042 JUNOS Voice Services Container package [9.5I20090330_0030_danai-20]
043 JUNOS Services AACL Container package [9.5I20090330_0030_danai-20]
044 JUNOS Services LL-PDF Container package [9.5I20090330_0030_danai-20]
045 JUNOS Services Stateful Firewall [9.5I20090330_0030_danai-20]
046 JUNOS AppId Services [9.5I20090330_0030_danai-20]
047 JUNOS IDP Services [9.5I20090330_0030_danai-20]
048 JUNOS Routing Software Suite [9.5I20090330_0030_danai-20]
049 [end ord]
050 [begin mia]
051 Hostname: mia
052 Model: m20
053 JUNOS Base OS boot [9.5I20090330_0030_danai-20]
054 JUNOS Base OS Software Suite [9.5I20090330_0030_danai-20]
055 JUNOS Kernel Software Suite [9.5I20090330_0030_danai-20]
056 JUNOS Crypto Software Suite [9.5I20090330_0030_danai-20]
057 JUNOS Packet Forwarding Engine Support (M/T Common) [9.5I20090330_0030_danai-20]
058 JUNOS Packet Forwarding Engine Support (M20/M40) [9.5I20090330_0030_danai-20]
059 JUNOS Online Documentation [9.5I20090330_0030_danai-20]
060 JUNOS Voice Services Container package [9.5I20090330_0030_danai-20]
061 JUNOS Services AACL Container package [9.5I20090330_0030_danai-20]
062 JUNOS Services LL-PDF Container package [9.5I20090330_0030_danai-20]
063 JUNOS Services Stateful Firewall [9.5I20090330_0030_danai-20]
064 JUNOS AppId Services [9.5I20090330_0030_danai-20]
065 JUNOS IDP Services [9.5I20090330_0030_danai-20]
066 JUNOS Routing Software Suite [9.5I20090330_0030_danai-20]
067 [end mia]
068
069 user@cli> op run-on-all target "iad ord mia" command "show route 10.5.20.2"
070 [processing target iad]
071 [connecting]
072 [executing]
073 [closing]
074 [processing target ord]
075 [connecting]
076 [executing]
077 [closing]
078 [processing target mia]
079 [connecting]
080 [executing]
081 [closing]
082 [begin iad]
083
084 inet.0: 29 destinations, 47 routes (28 active, 0 holddown, 1 hidden)
085 + = Active Route, - = Last Active, * = Both
086
087 10.5.20.0/24 *[OSPF/10] 2w6d 04:16:26, metric 2
088 > to 10.5.16.2 via fe-0/0/2.0
089 [end iad]
090 [begin ord]
091
092 inet.0: 29 destinations, 40 routes (28 active, 0 holddown, 1 hidden)
093 + = Active Route, - = Last Active, * = Both
094
095 10.5.20.0/24 *[BGP/170] 1w4d 21:20:04, MED 2, localpref 100
096 AS path: 68 I
097 > to 10.5.19.1 via fe-0/0/0.0
098 [BGP/170] 1w4d 21:20:08, MED 2, localpref 100
099 AS path: 68 I
100 > to 10.5.18.1 via fe-0/0/1.0
101 [end ord]
102 [begin mia]
103
104 inet.0: 25 destinations, 25 routes (24 active, 0 holddown, 1 hidden)
105 + = Active Route, - = Last Active, * = Both
106
107 10.5.20.2/32 *[Local/0] 10w0d 00:45:49
108 Local via fe-2/0/0.0
109 [end mia]
110
111 user@cli>
SLAX Script Contents
01 version 1.0;
02
03 ns junos = "http://xml.juniper.net/junos/*/junos";
04 ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
05 ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
06 ns ext = "http://xmlsoft.org/XSLT/namespace";
07 ns exsl = "http://exslt.org/math";
08
09 import "../import/junos.xsl";
10
11 /*
12 * This script runs a command on a set of remote hosts. The
13 * output from all targets is displayed.
14 *
15 * Note that this uses the "jcs:execute()" function, so the
16 * user must set up ssh-agent and keys as needed to allow
17 * unprompted login.
18 */
19
20 var $arguments = {
21 <argument> {
22 <name> "target";
23 <description> "Target of this command";
24 }
25 <argument> {
26 <name> "command";
27 <description> "Command to execute";
28 }
29 }
30
31 param $target;
32 param $command;
33 param $debug = 0; /* Debug level */
34
35 match / {
36 <op-script-results> {
37 <out> {
38 if (not($target)) {
39 expr jcs:output("missing argument: target");
40 } else if (not($command)) {
41 expr jcs:output("missing argument: command");
42 }
43 call main;
44 }
45 }
46 }
47
48 template main
49 {
50 var $rpc = {
51 if (contains($command, " ")) {
52 <command> $command;
53 } else {
54 <xsl:element name=$command>;
55 }
56 }
57 var $targets = jcs:split(" ", $target);
58
59 for-each ($targets) {
60 var $targ = .;
61
62 expr jcs:output("[processing target ", $targ, "]");
63 expr jcs:output(" [connecting]");
64 var $conn = jcs:open(.);
65 if ($conn) {
66 expr jcs:output(" [executing]");
67 var $result = jcs:execute($conn, $rpc);
68
69 copy-of $result;
70
71 expr jcs:output(" [closing]");
72 expr jcs:close($conn);
73 } else {
74 expr jcs:output(" [connection failed]");
75 }
76 }
77 }
|