Merge commit 'martins/master'
[metze/ctdb/wip.git] / doc / onnode.1
1 '\" t
2 .\"     Title: onnode
3 .\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
4 .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
5 .\"      Date: 10/22/2009
6 .\"    Manual: [FIXME: manual]
7 .\"    Source: [FIXME: source]
8 .\"  Language: English
9 .\"
10 .TH "ONNODE" "1" "10/22/2009" "[FIXME: source]" "[FIXME: manual]"
11 .\" -----------------------------------------------------------------
12 .\" * set default formatting
13 .\" -----------------------------------------------------------------
14 .\" disable hyphenation
15 .nh
16 .\" disable justification (adjust text to left margin only)
17 .ad l
18 .\" -----------------------------------------------------------------
19 .\" * MAIN CONTENT STARTS HERE *
20 .\" -----------------------------------------------------------------
21 .SH "NAME"
22 onnode \- run commands on ctdb nodes
23 .SH "SYNOPSIS"
24 .HP \w'\fBonnode\ [OPTION]\ \&.\&.\&.\ NODES\ COMMAND\ \&.\&.\&.\fR\ 'u
25 \fBonnode [OPTION] \&.\&.\&. NODES COMMAND \&.\&.\&.\fR
26 .SH "DESCRIPTION"
27 .PP
28 onnode is a utility to run commands on a specific node of a CTDB cluster, or on all nodes\&.
29 .PP
30 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\&.
31 .PP
32 The COMMAND can be any shell command\&. The onnode utility uses ssh or rsh to connect to the remote nodes and run the command\&.
33 .SH "DESCRIPTIVE NODE SPECIFICATIONS"
34 .PP
35 The following descriptive node specification can be used in place of numeric node numbers:
36 .PP
37 all
38 .RS 4
39 All nodes\&.
40 .RE
41 .PP
42 any
43 .RS 4
44 A node where ctdbd is running\&. This semi\-random but there is a bias towards choosing a low numbered node\&.
45 .RE
46 .PP
47 ok | healthy
48 .RS 4
49 All nodes that are not disconnected, banned, disabled or unhealthy\&.
50 .RE
51 .PP
52 con | connected
53 .RS 4
54 All nodes that are not disconnected\&.
55 .RE
56 .PP
57 lvs | lvsmaster
58 .RS 4
59 The current LVS master\&.
60 .RE
61 .PP
62 natgw | natgwlist
63 .RS 4
64 The current NAT gateway\&.
65 .RE
66 .PP
67 rm | recmaster
68 .RS 4
69 The current recovery master\&.
70 .RE
71 .SH "OPTIONS"
72 .PP
73 \-c
74 .RS 4
75 Execute COMMAND in the current working directory on the specified nodes\&.
76 .RE
77 .PP
78 \-o <prefix>
79 .RS 4
80 Causes standard output from each node to be saved into a file with name <prefix>\&.<ip>\&.
81 .RE
82 .PP
83 \-p
84 .RS 4
85 Run COMMAND in parallel on the specified nodes\&. The default is to run COMMAND sequentially on each node\&.
86 .RE
87 .PP
88 \-q
89 .RS 4
90 Do not print node addresses\&. Normally, onnode prints informational node addresses if more than one node is specified\&. This overrides \-v\&.
91 .RE
92 .PP
93 \-n
94 .RS 4
95 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
96 \-f /dev/null\&.
97 .RE
98 .PP
99 \-f <file>
100 .RS 4
101 Specify an alternative nodes file to use instead of
102 /etc/ctdb/nodes\&. This overrides the CTDB_NODES_FILE environment variable\&.
103 .RE
104 .PP
105 \-v
106 .RS 4
107 Print a node addresses even if only one node is specified\&. Normally, onnode prints informational node addresses when more than one node is specified\&.
108 .RE
109 .PP
110 \-h, \-\-help
111 .RS 4
112 Show a short usage guide\&.
113 .RE
114 .SH "EXAMPLES"
115 .PP
116 The following command would show the process ID of ctdb on all nodes
117 .sp
118 .if n \{\
119 .RS 4
120 .\}
121 .nf
122       onnode all pidof ctdbd
123     
124 .fi
125 .if n \{\
126 .RE
127 .\}
128 .PP
129 The following command would show the last 5 lines of log on each node, preceded by the node\'s hostname
130 .sp
131 .if n \{\
132 .RS 4
133 .\}
134 .nf
135       onnode all "hostname; tail \-5 /var/log/log\&.ctdb"
136     
137 .fi
138 .if n \{\
139 .RE
140 .\}
141 .PP
142 The following command would restart the ctdb service on all nodes\&.
143 .sp
144 .if n \{\
145 .RS 4
146 .\}
147 .nf
148       onnode all service ctdb restart
149     
150 .fi
151 .if n \{\
152 .RE
153 .\}
154 .PP
155 The following command would run \&./foo in the current working directory, in parallel, on nodes 0, 2, 3 and 4\&.
156 .sp
157 .if n \{\
158 .RS 4
159 .\}
160 .nf
161       onnode \-c \-p 0,2\-4 \&./foo
162     
163 .fi
164 .if n \{\
165 .RE
166 .\}
167 .SH "ENVIRONMENT"
168 .PP
169 \fBCTDB_NODES_FILE\fR
170 .RS 4
171 Name of alternative nodes file to use instead of
172 /etc/ctdb/nodes\&.
173 .RE
174 .SH "FILES"
175 .PP
176 /etc/ctdb/nodes
177 .RS 4
178 Default file containing a list of each node\'s IP address or hostname\&.
179 .RE
180 .PP
181 /etc/ctdb/onnode\&.conf
182 .RS 4
183 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\&.
184 .RE
185 .SH "SEE ALSO"
186 .PP
187 ctdbd(1), ctdb(1),
188 \m[blue]\fB\%http://ctdb.samba.org/\fR\m[]
189 .SH "COPYRIGHT/LICENSE"
190 .sp
191 .if n \{\
192 .RS 4
193 .\}
194 .nf
195 Copyright (C) Andrew Tridgell 2007
196 Copyright (C) Ronnie sahlberg 2007
197 Copyright (C) Martin Schwenke 2008
198
199 This program is free software; you can redistribute it and/or modify
200 it under the terms of the GNU General Public License as published by
201 the Free Software Foundation; either version 3 of the License, or (at
202 your option) any later version\&.
203
204 This program is distributed in the hope that it will be useful, but
205 WITHOUT ANY WARRANTY; without even the implied warranty of
206 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\&.  See the GNU
207 General Public License for more details\&.
208
209 You should have received a copy of the GNU General Public License
210 along with this program; if not, see http://www\&.gnu\&.org/licenses/\&.
211 .fi
212 .if n \{\
213 .RE
214 .\}