<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE refentry
- PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+ PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<refentry id="onnode.1">
-<refmeta>
- <refentrytitle>onnode</refentrytitle>
- <manvolnum>1</manvolnum>
- <refmiscinfo class="source"> </refmiscinfo>
- <refmiscinfo class="manual"> </refmiscinfo>
-</refmeta>
-
-
-<refnamediv>
- <refname>onnode</refname>
- <refpurpose>run commands on ctdb nodes</refpurpose>
-</refnamediv>
-
-<refsynopsisdiv>
- <cmdsynopsis>
- <command>onnode [OPTION] ... NODES COMMAND ...</command>
- </cmdsynopsis>
-</refsynopsisdiv>
-
- <refsect1><title>DESCRIPTION</title>
+ <refmeta>
+ <refentrytitle>onnode</refentrytitle>
+ <manvolnum>1</manvolnum>
+ <refmiscinfo class="source">ctdb</refmiscinfo>
+ <refmiscinfo class="manual">CTDB - clustered TDB database</refmiscinfo>
+ </refmeta>
+
+ <refnamediv>
+ <refname>onnode</refname>
+ <refpurpose>run commands on CTDB cluster nodes</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>onnode</command>
+ <arg rep="repeat"><replaceable>OPTION</replaceable></arg>
+ <arg choice="req"><replaceable>NODES</replaceable></arg>
+ <arg choice="req"><replaceable>COMMAND</replaceable></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+
+ <refsect1>
+ <title>DESCRIPTION</title>
<para>
onnode is a utility to run commands on a specific node of a CTDB
cluster, or on all nodes.
</para>
<para>
- The NODES option specifies which node to run a command on. You
- can specify a numeric node number (from 0 to N-1) or a
- descriptive node specification (see DESCRIPTIVE NODE
- SPECIFICATIONS below). You can also specify lists of nodes,
- separated by commas, and ranges of numeric node numbers,
- separated by dashes. If nodes are specified multiple times then
- the command will be executed multiple times on those nodes. The
- order of nodes is significant.
+ <replaceable>NODES</replaceable> specifies which node(s) to run
+ a command on. See section <citetitle>NODES
+ SPECIFICATION</citetitle> for details.
</para>
<para>
- The COMMAND can be any shell command. The onnode utility uses
- ssh or rsh to connect to the remote nodes and run the command.
+ <replaceable>COMMAND</replaceable> can be any shell command. The
+ onnode utility uses ssh or rsh to connect to the remote nodes
+ and run the command.
</para>
</refsect1>
- <refsect1><title>DESCRIPTIVE NODE SPECIFICATIONS</title>
-
- <para>
- The following descriptive node specification can be used in
- place of numeric node numbers:
- </para>
+ <refsect1>
+ <title>OPTIONS</title>
<variablelist>
- <varlistentry><term>all</term>
+ <varlistentry><term>-c</term>
<listitem>
<para>
- All nodes.
+ Execute COMMAND in the current working directory on the
+ specified nodes.
</para>
</listitem>
</varlistentry>
- <varlistentry><term>any</term>
+
+ <varlistentry><term>-f <parameter>FILENAME</parameter></term>
<listitem>
<para>
- A node where ctdbd is running. This semi-random but
- there is a bias towards choosing a low numbered node.
+ Specify an alternative nodes FILENAME to use instead of
+ the default. This option overrides the CTDB_NODES_FILE
+ environment variable. See the discussion of
+ <filename>/etc/ctdb/nodes</filename> in the FILES section
+ for more details.
</para>
</listitem>
</varlistentry>
- <varlistentry><term>ok | healthy</term>
+
+ <varlistentry><term>-n</term>
<listitem>
<para>
- All nodes that are not disconnected, banned, disabled or
- unhealthy.
+ Allow nodes to be specified by name rather than node
+ numbers. These nodes don't need to be listed in the nodes
+ file. You can avoid the nodes file entirely by combining
+ this with <code>-f /dev/null</code>.
</para>
</listitem>
</varlistentry>
- <varlistentry><term>con | connected</term>
+
+ <varlistentry><term>-o <parameter>PREFIX</parameter></term>
<listitem>
<para>
- All nodes that are not disconnected.
+ Causes standard output from each node to be saved into a
+ file with name PREFIX.<replaceable>IP</replaceable>.
</para>
</listitem>
</varlistentry>
- <varlistentry><term>lvs | lvsmaster</term>
+
+ <varlistentry><term>-p</term>
<listitem>
<para>
- The current LVS master.
+ Run COMMAND in parallel on the specified nodes. The
+ default is to run COMMAND sequentially on each node.
</para>
</listitem>
</varlistentry>
- <varlistentry><term>natgw | natgwlist</term>
+
+ <varlistentry><term>-P</term>
<listitem>
<para>
- The current NAT gateway.
+ Push files to nodes. Names of files to push are specified
+ rather than the usual command. Quoting is fragile/broken
+ - filenames with whitespace in them are not supported.
</para>
</listitem>
</varlistentry>
- <varlistentry><term>rm | recmaster</term>
+
+ <varlistentry><term>-q</term>
<listitem>
<para>
- The current recovery master.
+ Do not print node addresses. Normally, onnode prints
+ informational node addresses if more than one node is
+ specified. This overrides -v.
</para>
</listitem>
</varlistentry>
- </variablelist>
- </refsect1>
- <refsect1><title>OPTIONS</title>
-
- <variablelist>
- <varlistentry><term>-c</term>
+ <varlistentry><term>-v</term>
<listitem>
<para>
- Execute COMMAND in the current working directory on the
- specified nodes.
+ Print node addresses even if only one node is specified.
+ Normally, onnode prints informational node addresses when
+ more than one node is specified.
</para>
</listitem>
</varlistentry>
- <varlistentry><term>-o <prefix></term>
+ <varlistentry><term>-h, --help</term>
<listitem>
<para>
- Causes standard output from each node to be saved into a
- file with name <prefix>.<ip>.
+ Show a short usage guide.
</para>
</listitem>
</varlistentry>
+ </variablelist>
+ </refsect1>
- <varlistentry><term>-p</term>
+ <refsect1>
+ <title>NODES SPECIFICATION</title>
+
+ <para>
+ Nodes can be specified via numeric node numbers (from 0 to N-1)
+ or mnemonics. Multiple nodes are specified using lists of
+ nodes, separated by commas, and ranges of numeric node numbers,
+ separated by dashes. If nodes are specified multiple times then
+ the command will be executed multiple times on those nodes. The
+ order of nodes is significant.
+ </para>
+
+ <para>
+ The following mnemonics are available:
+ </para>
+
+ <variablelist>
+ <varlistentry><term>all</term>
<listitem>
<para>
- Run COMMAND in parallel on the specified nodes. The
- default is to run COMMAND sequentially on each node.
+ All nodes.
</para>
</listitem>
</varlistentry>
-
- <varlistentry><term>-q</term>
+ <varlistentry><term>any</term>
<listitem>
<para>
- Do not print node addresses. Normally, onnode prints
- informational node addresses if more than one node is
- specified. This overrides -v.
+ A node where ctdbd is running. This semi-random but
+ there is a bias towards choosing a low numbered node.
</para>
</listitem>
</varlistentry>
-
- <varlistentry><term>-n</term>
+ <varlistentry><term>ok | healthy</term>
<listitem>
<para>
- Allow nodes to be specified by name rather than node
- numbers. These nodes don't need to be listed in the nodes
- file. You can avoid the nodes file entirely by combining
- this with <code>-f /dev/null</code>.
+ All nodes that are not disconnected, banned, disabled or
+ unhealthy.
</para>
</listitem>
</varlistentry>
-
- <varlistentry><term>-f <file></term>
+ <varlistentry><term>con | connected</term>
<listitem>
<para>
- Specify an alternative nodes file to use instead of the
- default. This option overrides the CTDB_NODES_FILE
- environment variable. See the discussion of
- <filename>/etc/ctdb/nodes</filename> in the FILES section
- for more details.
+ All nodes that are not disconnected.
</para>
</listitem>
</varlistentry>
-
- <varlistentry><term>-v</term>
+ <varlistentry><term>lvs | lvsmaster</term>
<listitem>
<para>
- Print a node addresses even if only one node is specified.
- Normally, onnode prints informational node addresses when
- more than one node is specified.
+ The current LVS master.
</para>
</listitem>
</varlistentry>
-
- <varlistentry><term>-P</term>
+ <varlistentry><term>natgw | natgwlist</term>
<listitem>
<para>
- Push files to nodes. Names of files to push are specified
- rather than the usual command. Quoting is fragile/broken
- - filenames with whitespace in them are not supported.
+ The current NAT gateway.
</para>
</listitem>
</varlistentry>
-
- <varlistentry><term>-h, --help</term>
+ <varlistentry><term>rm | recmaster</term>
<listitem>
<para>
- Show a short usage guide.
+ The current recovery master.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
- <refsect1><title>EXAMPLES</title>
+ <refsect1>
+ <title>EXAMPLES</title>
+
<para>
- The following command would show the process ID of ctdb on all nodes
+ The following command would show the process ID of ctdbd on all nodes
</para>
<screen format="linespecific">
- onnode all pidof ctdbd
+ onnode all ctdb getpid
</screen>
<para>
</screen>
<para>
- The following command would restart the ctdb service on all nodes.
+ The following command would restart the ctdb service on all
+ nodes, in parallel.
</para>
<screen format="linespecific">
- onnode all service ctdb restart
+ onnode -p all service ctdb restart
</screen>
<para>
</screen>
</refsect1>
- <refsect1><title>ENVIRONMENT</title>
+ <refsect1>
+ <title>ENVIRONMENT</title>
<variablelist>
+ <varlistentry><term><envar>CTDB_BASE</envar></term>
+ <listitem>
+ <para>
+ Directory containing CTDB configuration files. The
+ default is <filename>/etc/ctdb</filename>.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry><term><envar>CTDB_NODES_FILE</envar></term>
<listitem>
<para>
Name of alternative nodes file to use instead of the
- default. See the discussion of
- <filename>/etc/ctdb/nodes</filename> in the FILES section
- for more details.
+ default. See the <citetitle>FILES</citetitle> section for
+ more details.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
- <refsect1><title>FILES</title>
+ <refsect1>
+ <title>FILES</title>
<variablelist>
<varlistentry><term><filename>/etc/ctdb/nodes</filename></term>
</para>
<para>
Actually, the default is
- <filename>$<envar>CTDB_BASE</envar>/nodes</filename>,
- where <envar>$CTDB_BASE</envar> defaults to
- <filename>/etc/ctdb</filename>. If a relative path is
- given (via the -f option or <envar>$CTDB_BASE</envar>) and
- no corresponding file exists relative to the current
- directory then the file is also searched for in the
- <filename>$<envar>CTDB_BASE</envar></filename> directory.
+ <filename>$CTDB_BASE/nodes</filename>, where
+ <envar>CTDB_BASE</envar> defaults to
+ <filename>/etc/ctdb</filename>. If a relative path is
+ given (via the -f option or <envar>CTDB_BASE</envar>) and
+ no corresponding file exists relative to the current
+ directory then the file is also searched for in the
+ <filename>$CTDB_BASE</filename> directory.
</para>
</listitem>
</varlistentry>
<listitem>
<para>
If this file exists it is sourced by onnode. The main
- purpose is to allow the administrator to set $SSH to
- something other than "ssh". In this case the -t option is
- ignored. For example, the administrator may choose to use
- use rsh instead of ssh.
+ purpose is to allow the administrator to set
+ <envar>SSH</envar> to something other than "ssh". In this
+ case the -t option is ignored. For example, the
+ administrator may choose to use use rsh instead of ssh.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
- <refsect1><title>SEE ALSO</title>
+ <refsect1>
+ <title>SEE ALSO</title>
+
<para>
- ctdbd(1), ctdb(1), <ulink url="http://ctdb.samba.org/"/>
+ <citerefentry><refentrytitle>ctdb</refentrytitle>
+ <manvolnum>7</manvolnum></citerefentry>,
+
+ <ulink url="http://ctdb.samba.org/"/>
</para>
</refsect1>
- <refsect1><title>COPYRIGHT/LICENSE</title>
-<literallayout>
-Copyright (C) Andrew Tridgell 2007
-Copyright (C) Ronnie sahlberg 2007
-Copyright (C) Martin Schwenke 2008
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, see http://www.gnu.org/licenses/.
-</literallayout>
- </refsect1>
+
+ <refentryinfo>
+ <author>
+ <contrib>
+ This documentation was written by
+ Andrew Tridgell,
+ Martin Schwenke
+ </contrib>
+ </author>
+
+ <copyright>
+ <year>2007</year>
+ <holder>Andrew Tridgell</holder>
+ <holder>Ronnie Sahlberg</holder>
+ </copyright>
+ <copyright>
+ <year>2008</year>
+ <holder>Martin Schwenke</holder>
+ </copyright>
+ <legalnotice>
+ <para>
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 3 of
+ the License, or (at your option) any later version.
+ </para>
+ <para>
+ This program is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the GNU General Public License for more details.
+ </para>
+ <para>
+ You should have received a copy of the GNU General Public
+ License along with this program; if not, see
+ <ulink url="http://www.gnu.org/licenses"/>.
+ </para>
+ </legalnotice>
+ </refentryinfo>
+
</refentry>