1 <?xml version="1.0" encoding="iso-8859-1"?>
3 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
4 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
5 <refentry id="onnode.1">
8 <refentrytitle>onnode</refentrytitle>
9 <manvolnum>1</manvolnum>
10 <refmiscinfo class="source">ctdb</refmiscinfo>
11 <refmiscinfo class="manual">CTDB - clustered TDB database</refmiscinfo>
15 <refname>onnode</refname>
16 <refpurpose>run commands on CTDB cluster nodes</refpurpose>
21 <command>onnode</command>
22 <arg rep="repeat"><replaceable>OPTION</replaceable></arg>
23 <arg choice="req"><replaceable>NODES</replaceable></arg>
24 <arg choice="req"><replaceable>COMMAND</replaceable></arg>
29 <title>DESCRIPTION</title>
31 onnode is a utility to run commands on a specific node of a CTDB
32 cluster, or on all nodes.
35 <replaceable>NODES</replaceable> specifies which node(s) to run
36 a command on. See section <citetitle>NODES
37 SPECIFICATION</citetitle> for details.
40 <replaceable>COMMAND</replaceable> can be any shell command. The
41 onnode utility uses ssh or rsh to connect to the remote nodes
47 <title>OPTIONS</title>
50 <varlistentry><term>-c</term>
53 Execute COMMAND in the current working directory on the
59 <varlistentry><term>-f <parameter>FILENAME</parameter></term>
62 Specify an alternative nodes FILENAME to use instead of
63 the default. See the discussion of
64 <filename>/usr/local/etc/ctdb/nodes</filename> in the
65 FILES section for more details.
70 <varlistentry><term>-i</term>
73 Keep standard input open, allowing data to be piped to
74 onnode. Normally onnode closes stdin to avoid surprises
75 when scripting. Note that this option is ignored when
76 using <option>-p</option> or if <envar>ONNODE_SSH</envar>
77 is set to anything other than "ssh".
82 <varlistentry><term>-n</term>
85 Allow nodes to be specified by name rather than node
86 numbers. These nodes don't need to be listed in the nodes
87 file. You can avoid the nodes file entirely by combining
88 this with <code>-f /dev/null</code>.
93 <varlistentry><term>-o <parameter>PREFIX</parameter></term>
96 Causes standard output from each node to be saved into a
97 file with name PREFIX.<replaceable>IP</replaceable>.
102 <varlistentry><term>-p</term>
105 Run COMMAND in parallel on the specified nodes. The
106 default is to run COMMAND sequentially on each node.
111 <varlistentry><term>-P</term>
114 Push files to nodes. Names of files to push are specified
115 rather than the usual command. Quoting is fragile/broken
116 - filenames with whitespace in them are not supported.
121 <varlistentry><term>-q</term>
124 Do not print node addresses. Normally, onnode prints
125 informational node addresses if more than one node is
126 specified. This overrides -v.
131 <varlistentry><term>-v</term>
134 Print node addresses even if only one node is specified.
135 Normally, onnode prints informational node addresses when
136 more than one node is specified.
141 <varlistentry><term>-h, --help</term>
144 Show a short usage guide.
152 <title>NODES SPECIFICATION</title>
155 Nodes can be specified via numeric node numbers (from 0 to N-1)
156 or mnemonics. Multiple nodes are specified using lists of
157 nodes, separated by commas, and ranges of numeric node numbers,
158 separated by dashes. If nodes are specified multiple times then
159 the command will be executed multiple times on those nodes. The
160 order of nodes is significant.
164 The following mnemonics are available:
168 <varlistentry><term>all</term>
175 <varlistentry><term>any</term>
178 A node where ctdbd is running. This semi-random but
179 there is a bias towards choosing a low numbered node.
183 <varlistentry><term>ok | healthy</term>
186 All nodes that are not disconnected, banned, disabled or
191 <varlistentry><term>con | connected</term>
194 All nodes that are not disconnected.
202 <title>EXAMPLES</title>
205 The following command would show the process ID of ctdbd on all nodes
207 <screen format="linespecific">
208 onnode all ctdb getpid
212 The following command would show the last 5 lines of log on each
213 node, preceded by the node's hostname
215 <screen format="linespecific">
216 onnode all "hostname; tail -5 /usr/local/var/log/log.ctdb"
220 The following command would restart the ctdb service on all
223 <screen format="linespecific">
224 onnode -p all service ctdb restart
228 The following command would run ./foo in the current working
229 directory, in parallel, on nodes 0, 2, 3 and 4.
231 <screen format="linespecific">
232 onnode -c -p 0,2-4 ./foo
237 <title>ENVIRONMENT</title>
240 <varlistentry><term><envar>CTDB_BASE</envar></term>
243 Directory containing CTDB configuration files. The
244 default is <filename>/usr/local/etc/ctdb</filename>.
256 <varlistentry><term><filename>/usr/local/etc/ctdb/nodes</filename></term>
259 Default file containing a list of each node's IP address
263 As above, a file specified via the <option>-f</option>
264 is given precedence. If a
265 relative path is specified and no corresponding file
266 exists relative to the current directory then the file is
267 also searched for in the <filename>$CTDB_BASE</filename>
271 Otherwise the default is
272 <filename>/usr/local/etc/ctdb/nodes</filename>.
278 <term><filename>/usr/local/etc/ctdb/onnode.conf</filename></term>
281 If this file exists it is sourced by onnode. The main
282 purpose is to allow the administrator to set
283 <envar>ONNODE_SSH</envar> to something other than "ssh".
284 In this case the -t option is ignored.
292 <title>SEE ALSO</title>
295 <citerefentry><refentrytitle>ctdb</refentrytitle>
296 <manvolnum>7</manvolnum></citerefentry>,
298 <ulink url="http://ctdb.samba.org/"/>
305 This documentation was written by
313 <holder>Andrew Tridgell</holder>
314 <holder>Ronnie Sahlberg</holder>
318 <holder>Martin Schwenke</holder>
322 This program is free software; you can redistribute it and/or
323 modify it under the terms of the GNU General Public License as
324 published by the Free Software Foundation; either version 3 of
325 the License, or (at your option) any later version.
328 This program is distributed in the hope that it will be
329 useful, but WITHOUT ANY WARRANTY; without even the implied
330 warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
331 PURPOSE. See the GNU General Public License for more details.
334 You should have received a copy of the GNU General Public
335 License along with this program; if not, see
336 <ulink url="http://www.gnu.org/licenses"/>.