Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / man / man1 / postmulti.1
blob22d6928522846775d8aebf689a2a00dd20460576
1 .\"     $NetBSD$
2 .\"
3 .TH POSTMULTI 1 
4 .ad
5 .fi
6 .SH NAME
7 postmulti
8 \-
9 Postfix multi-instance manager
10 .SH "SYNOPSIS"
11 .na
12 .nf
13 .fi
14 \fBpostmulti\fR \fB-l\fR [\fB-aRv\fR] [\fB-g \fIgroup\fR]
15 [\fB-i \fIname\fR]
17 \fBpostmulti\fR \fB-p\fR [\fB-av\fR] [\fB-g \fIgroup\fR]
18 [\fB-i \fIname\fR] \fIcommand...\fR
20 \fBpostmulti\fR \fB-x\fR [\fB-aRv\fR] [\fB-g \fIgroup\fR]
21 [\fB-i \fIname\fR] \fIcommand...\fR
23 \fBpostmulti\fR \fB-e init\fR [\fB-v\fR]
25 \fBpostmulti\fR \fB-e create\fR [\fB-av\fR]
26 [\fB-g \fIgroup\fR] [\fB-i \fIname\fR] [\fB-G \fIgroup\fR]
27 [\fB-I \fIname\fR] [\fIparam=value\fR ...]
29 \fBpostmulti\fR \fB-e import\fR [\fB-av\fR]
30 [\fB-g \fIgroup\fR] [\fB-i \fIname\fR] [\fB-G \fIgroup\fR]
31 [\fB-I \fIname\fR] [\fBconfig_directory=\fI/path\fR]
33 \fBpostmulti\fR \fB-e destroy\fR [\fB-v\fR] \fB-i \fIname\fR
35 \fBpostmulti\fR \fB-e deport\fR [\fB-v\fR] \fB-i \fIname\fR
37 \fBpostmulti\fR \fB-e enable\fR [\fB-v\fR] \fB-i \fIname\fR
39 \fBpostmulti\fR \fB-e disable\fR [\fB-v\fR] \fB-i \fIname\fR
41 \fBpostmulti\fR \fB-e assign\fR [\fB-v\fR] \fB-i \fIname\fR
42 [\fB-I \fIname\fR] [-G \fIgroup\fR]
43 .SH DESCRIPTION
44 .ad
45 .fi
46 The \fBpostmulti\fR(1) command allows a Postfix administrator
47 to manage multiple Postfix instances on a single host.
49 \fBpostmulti\fR(1) implements two fundamental modes of
50 operation.  In \fBiterator\fR mode, it executes the same
51 command for multiple Postfix instances.  In \fBlife-cycle
52 management\fR mode, it adds or deletes one instance, or
53 changes the multi-instance status of one instance.
55 Each mode of operation has its own command syntax. For this
56 reason, each mode is documented in separate sections below.
57 .SH "BACKGROUND"
58 .na
59 .nf
60 .ad
61 .fi
62 A multi-instance configuration consists of one primary
63 Postfix instance, and one or more secondary instances whose
64 configuration directory pathnames are recorded in the primary
65 instance's main.cf file. Postfix instances share program
66 files and documentation, but have their own configuration,
67 queue and data directories.
69 Currently, only the default Postfix instance can be used
70 as primary instance in a multi-instance configuration. The
71 \fBpostmulti\fR(1) command does not currently support a \fB-c\fR
72 option to select an alternative primary instance, and exits
73 with a fatal error if the \fBMAIL_CONFIG\fR environment
74 variable is set to a non-default configuration directory.
76 See the MULTI_INSTANCE_README tutorial for a more detailed
77 discussion of multi-instance management with \fBpostmulti\fR(1).
78 .SH "ITERATOR MODE"
79 .na
80 .nf
81 .ad
82 .fi
83 In iterator mode, \fBpostmulti\fR performs the same operation
84 on all Postfix instances in turn.
86 If multi-instance support is not enabled, the requested
87 command is performed just for the primary instance.
88 .PP
89 Iterator mode implements the following command options:
90 .SH "Instance selection"
91 .IP \fB-a\fR
92 Perform the operation on all instances. This is the default.
93 .IP "\fB-g \fIgroup\fR"
94 Perform the operation only for members of the named \fIgroup\fR.
95 .IP "\fB-i \fIname\fR"
96 Perform the operation only for the instance with the specified
97 \fIname\fR.  You can specify either the instance name
98 or the absolute pathname of the instance's configuration
99 directory.  Specify "-" to select the primary Postfix instance.
100 .IP \fB-R\fR
101 Reverse the iteration order. This may be appropriate when
102 updating a multi-instance system, where "sink" instances
103 are started before "source" instances.
105 This option cannot be used with \fB-p\fR.
106 .SH "List mode"
107 .IP \fB-l\fR
108 List Postfix instances with their instance name, instance
109 group name, enable/disable status and configuration directory.
110 .SH "Postfix-wrapper mode"
111 .IP \fB-p\fR
112 Invoke \fBpostfix(1)\fR to execute the specified \fIcommand\fR.
113 This option implements the \fBpostfix-wrapper\fR(5) interface.
115 .IP \(bu
116 With "start"-like commands, "postfix check" is executed for
117 instances that are not enabled. The full list of commands
118 is specified with the postmulti_start_commands parameter.
119 .IP \(bu
120 With "stop"-like commands, the iteration order is reversed,
121 and disabled instances are skipped. The full list of commands
122 is specified with the postmulti_stop_commands parameter.
123 .IP \(bu
124 With "reload" and other commands that require a started
125 instance, disabled instances are skipped. The full list of
126 commands is specified with the postmulti_control_commands
127 parameter.
128 .IP \(bu
129 With "status" and other commands that don't require a started
130 instance, the command is executed for all instances.
133 The \fB-p\fR option can also be used interactively to
134 start/stop/etc.  a named instance or instance group. For
135 example, to start just the instances in the group "msa",
136 invoke \fBpostmulti\fR(1) as follows:
139 # postmulti -g msa -p start
141 .SH "Command mode"
142 .IP \fB-x\fR
143 Execute the specified \fIcommand\fR for all Postfix instances.
144 The command runs with appropriate environment settings for
145 MAIL_CONFIG, command_directory, daemon_directory,
146 config_directory, queue_directory, data_directory,
147 multi_instance_name, multi_instance_group and
148 multi_instance_enable.
149 .SH "Other options"
150 .IP \fB-v\fR
151 Enable verbose logging for debugging purposes. Multiple
152 \fB-v\fR options make the software increasingly verbose.
153 .SH "LIFE-CYCLE MANAGEMENT MODE"
158 With the \fB-e\fR option \fBpostmulti\fR(1) can be used to
159 add or delete a Postfix instance, and to manage the
160 multi-instance status of an existing instance.
162 The following options are implemented:
163 .SH "Existing instance selection"
164 .IP \fB-a\fR
165 When creating or importing an instance, place the new
166 instance at the front of the secondary instance list.
167 .IP "\fB-g \fIgroup\fR"
168 When creating or importing an instance, place the new
169 instance before the first secondary instance that is a
170 member of the specified group.
171 .IP "\fB-i \fIname\fR"
172 When creating or importing an instance, place the new
173 instance before the matching secondary instance.
175 With other life-cycle operations, apply the operation to
176 the named existing instance.  Specify "-" to select the
177 primary Postfix instance.
178 .SH "New or existing instance name assignment"
179 .IP "\fB-I \fIname\fR"
180 Assign the specified instance \fIname\fR to an existing
181 instance, newly-created instance, or imported instance.
182 Instance
183 names other than "-" (which makes the instance "nameless")
184 must start with "postfix-".  This restriction reduces the
185 likelihood of name collisions with system files.
186 .IP "\fB-G \fIgroup\fR"
187 Assign the specified \fIgroup\fR name to an existing instance
188 or to a newly created or imported instance.
189 .SH "Instance creation/deletion/status change"
190 .IP "\fB-e \fIaction\fR"
191 "Edit" managed instances. The following actions are supported:
193 .IP \fBinit\fR
194 This command is required before \fBpostmulti\fR(1) can be
195 used to manage Postfix instances.  The "postmulti -e init"
196 command updates the primary instance's main.cf file by
197 setting:
201 multi_instance_wrapper =
202         ${command_directory}/postmulti -p --
203 multi_instance_enable = yes
207 You can set these by other means if you prefer.
208 .IP \fBcreate\fR
209 Create a new Postfix instance and add it to the
210 multi_instance_directories parameter of the primary instance.
211 The "\fB-I \fIname\fR" option is recommended to give the
212 instance a short name that is used to construct default
213 values for the private directories of the new instance. The
214 "\fB-G \fIgroup\fR" option may be specified to assign the
215 instance to a group, otherwise, the new instance is not a
216 member of any groups.
218 The new instance main.cf is the stock main.cf with the
219 parameters that specify the locations of shared files cloned
220 from the primary instance.  For "nameless" instances, you
221 should manually adjust "syslog_name" to yield a unique
222 "logtag" starting with "postfix-" that will uniquely identify
223 the instance in the mail logs. It is simpler to assign the
224 instance a short name with the "\fB-I \fIname\fR" option.
226 Optional "name=value" arguments specify the instance
227 config_directory, queue_directory and data_directory.
228 For example:
232 # postmulti -I postfix-mumble \e
233         -G mygroup -e create \e
234         config_directory=/my/config/dir \e
235         queue_directory=/my/queue/dir \e
236         data_directory=/my/data/dir
240 If any of these pathnames is not supplied, the program
241 attempts to generate the pathname by taking the corresponding
242 primary instance pathname, and by replacing the last pathname
243 component by the value of the \fB-I\fR option.
245 If the instance configuration directory already exists, and
246 contains both a main.cf and master.cf file, \fBcreate\fR
247 will "import" the instance as-is. For existing instances,
248 \fBcreate\fR and \fBimport\fR are identical.
249 .IP \fBimport\fR
250 Import an existing instance into the list of instances
251 managed by the \fBpostmulti\fR(1) multi-instance manager.
252 This adds the instance to the multi_instance_directories
253 list of the primary instance.  If the "\fB-I \fIname\fR"
254 option is provided it specifies the new name for the instance
255 and is used to define a default location for the instance
256 configuration directory (as with \fBcreate\fR above).  The
257 "\fB-G \fIgroup\fR" option may be used to assign the instance
258 to a group. Add a "\fBconfig_directory=\fI/path\fR" argument
259 to override a default pathname based on "\fB-I \fIname\fR".
260 .IP \fBdestroy\fR
261 Destroy a secondary Postfix instance. To be a candidate for
262 destruction an instance must be disabled, stopped and its
263 queue must not contain any messages. Attempts to destroy
264 the primary Postfix instance trigger a fatal error, without
265 destroying the instance.
267 The instance is removed from the primary instance main.cf
268 file's alternate_config_directories parameter and its data,
269 queue and configuration directories are cleaned of files
270 and directories created by the Postfix system. The main.cf
271 and master.cf files are removed from the configuration
272 directory even if they have been modified since initial
273 creation. Finally, the instance is "deported" from the list
274 of managed instances.
276 If other files are present in instance private directories,
277 the directories may not be fully removed, a warning is
278 logged to alert the administrator. It is expected that an
279 instance built using "fresh" directories via the \fBcreate\fR
280 action will be fully removed by the \fBdestroy\fR action
281 (if first disabled). If the instance configuration and queue
282 directories are populated with additional files (access and
283 rewriting tables, chroot jail content, etc.) the instance
284 directories will not be fully removed.
286 The \fBdestroy\fR action triggers potentially dangerous
287 file removal operations. Make sure the instance's data,
288 queue and configuration directories are set correctly and
289 do not contain any valuable files.
290 .IP \fBdeport\fR
291 Deport a secondary instance from the list of managed
292 instances. This deletes the instance configuration directory
293 from the primary instance's multi_instance_directories list,
294 but does not remove any files or directories.
295 .IP \fBassign\fR
296 Assign a new instance name or a new group name to the
297 selected instance.  Use "\fB-G -\fR" to specify "no group"
298 and "\fB-I -\fR" to specify "no name".  If you choose to
299 make an instance "nameless", set a suitable syslog_name in
300 the corresponding main.cf file.
301 .IP \fBenable\fR
302 Mark the selected instance as enabled. This just sets the
303 multi_instance_enable parameter to "yes" in the instance's
304 main.cf file.
305 .IP \fBdisable\fR
306 Mark the selected instance as disabled. This means that
307 the instance will not be started etc. with "postfix start",
308 "postmulti -p start" and so on. The instance can still be
309 started etc. with "postfix -c config-directory start".
310 .SH "Other options"
311 .IP \fB-v\fR
312 Enable verbose logging for debugging purposes. Multiple
313 \fB-v\fR options make the software increasingly verbose.
315 .SH "ENVIRONMENT"
320 The \fBpostmulti\fR(1) command exports the following environment
321 variables before executing the requested \fIcommand\fR for a given
322 instance:
323 .IP \fBMAIL_VERBOSE\fR
324 This is set when the -v command-line option is present.
325 .IP \fBMAIL_CONFIG\fR
326 The location of the configuration directory of the instance.
327 .SH "CONFIGURATION PARAMETERS"
332 .IP "\fBconfig_directory (see 'postconf -d' output)\fR"
333 The default location of the Postfix main.cf and master.cf
334 configuration files.
335 .IP "\fBdaemon_directory (see 'postconf -d' output)\fR"
336 The directory with Postfix support programs and daemon programs.
337 .IP "\fBimport_environment (see 'postconf -d' output)\fR"
338 The list of environment parameters that a Postfix process will
339 import from a non-Postfix parent process.
340 .IP "\fBmulti_instance_directories (empty)\fR"
341 An optional list of non-default Postfix configuration directories;
342 these directories belong to additional Postfix instances that share
343 the Postfix executable files and documentation with the default
344 Postfix instance, and that are started, stopped, etc., together
345 with the default Postfix instance.
346 .IP "\fBmulti_instance_group (empty)\fR"
347 The optional instance group name of this Postfix instance.
348 .IP "\fBmulti_instance_name (empty)\fR"
349 The optional instance name of this Postfix instance.
350 .IP "\fBmulti_instance_enable (no)\fR"
351 Allow this Postfix instance to be started, stopped, etc., by a
352 multi-instance manager.
353 .IP "\fBpostmulti_start_commands (start)\fR"
354 The \fBpostfix\fR(1) commands that the \fBpostmulti\fR(1) instance manager treats
355 as "start" commands.
356 .IP "\fBpostmulti_stop_commands (see 'postconf -d' output)\fR"
357 The \fBpostfix\fR(1) commands that the \fBpostmulti\fR(1) instance manager treats
358 as "stop" commands.
359 .IP "\fBpostmulti_control_commands (reload flush)\fR"
360 The \fBpostfix\fR(1) commands that the \fBpostmulti\fR(1) instance manager
361 treats as "control" commands, that operate on running instances.
362 .IP "\fBsyslog_facility (mail)\fR"
363 The syslog facility of Postfix logging.
364 .IP "\fBsyslog_name (see 'postconf -d' output)\fR"
365 The mail system name that is prepended to the process name in syslog
366 records, so that "smtpd" becomes, for example, "postfix/smtpd".
367 .SH "FILES"
370 $daemon_directory/main.cf, stock configuration file
371 $daemon_directory/master.cf, stock configuration file
372 $daemon_directory/postmulti-script, life-cycle helper program
373 .SH "SEE ALSO"
376 postfix(1), Postfix control program
377 postfix-wrapper(5), Postfix multi-instance API
378 .SH "README FILES"
381 Use "\fBpostconf readme_directory\fR" or "\fBpostconf
382 html_directory\fR" to locate this information.
383 MULTI_INSTANCE_README, Postfix multi-instance management
384 .SH "HISTORY"
389 The \fBpostmulti\fR(1) command was introduced with Postfix
390 version 2.6.
391 .SH "LICENSE"
396 The Secure Mailer license must be distributed with this software.
397 .SH "AUTHOR(S)"
400 Victor Duchovni
401 Morgan Stanley
403 Wietse Venema
404 IBM T.J. Watson Research
405 P.O. Box 704
406 Yorktown Heights, NY 10598, USA