1BUCARDO(1)            User Contributed Perl Documentation           BUCARDO(1)
2
3
4

NAME

6       bucardo - utility script for controlling the Bucardo program
7

VERSION

9       This document describes version 5.4.1 of bucardo
10

USAGE

12         bucardo [<options>] <command> [<action>] [<command-options>] [<command-params>]
13

DESCRIPTION

15       The bucardo script is the main interaction to a running Bucardo
16       instance. It can be used to start and stop Bucardo, add new items, kick
17       syncs, and even install and upgrade Bucardo itself. For more complete
18       documentation, please view the wiki <http://bucardo.org/>.
19

COMMANDS

21       Run "bucardo help <command>" for additional details
22
23       "install"
24           Installs the Bucardo configuration database.
25
26       "upgrade"
27           Upgrades the Bucardo configuration database to the latest schema.
28
29       "start [<start options>] [<reason>]"
30           Starts Bucardo.
31
32       "stop [<reason>]"
33           Stops Bucardo.
34
35       "restart [<start options>] [<reason>]"
36           Stops and starts Bucardo.
37
38       "list <type> [<regex>]"
39           Lists objects managed by Bucardo.
40
41       "add <type> <name> <parameters>"
42           Adds a new object.
43
44       "update <type> <name> <parameters>"
45           Updates an object.
46
47       "remove <type> <name> [<name>...]"
48           Removes one or more objects.
49
50       "kick <syncname> [<sync options>] [<syncname>...] [<timeout>]"
51           Kicks off one or more syncs.
52
53       "reload config"
54           Sends a message to all CTL and KID processes asking them to reload
55           the Bucardo configuration.
56
57       "reopen"
58           Sends a message to all Bucardo processes asking them to reopen any
59           log files they may have open. Call this after you have rotated the
60           log file(s).
61
62       "show all|<setting> [<setting>...]"
63           Shows the current Bucardo settings.
64
65       "<set <setting=value" [<setting=value>...] >>
66           Sets one or more configuration setting..
67
68       "ping [<timeout>]"
69           Sends a ping notice to the MCP process to see if it will respond.
70
71       "status [<status options>] <syncname> [<syncname>...]"
72           Shows the brief status of syncs in a tabular format.
73
74       "activate <syncname> [<syncname>...] [<timeout>]"
75           Activates one or more named syncs.
76
77       "deactivate <syncname> [<syncname>...] [<timeout>]"
78           Deactivates one or more named syncs.
79
80       "message <body>"
81           Sends a message to the running Bucardo logs.
82
83       "reload [<syncname> [<syncname>...]]"
84           Sends a message to one or more sync processes, instructing them to
85           reload.
86
87       "inspect <type> <name> [<name>...]"
88           Inspects one or more objects of a particular type.
89
90       "validate all|<syncname> [<syncname>...]"
91           Validates one or more syncs.
92
93       "purge all|<table> [<table>...]"
94           Purges the delta and track tables for one or more tables, for one
95           or more databases.
96
97       "delta [<database(s)>]"
98           Show the delta counts for each source target.
99
100       "help [<command> [<action>]]"
101           Shows help.
102

OPTIONS

104         -d --db-name       NAME  Database name.
105         -U --db-user       USER  Database user name.
106         -P --db-pass       PASS  Database password.
107         -h --db-host       HOST  Database server host name.
108         -p --db-port       PORT  Database server port number.
109            --bucardorc     FILE  Use specified .bucardorc file.
110            --no-bucardorc        Do not use .bucardorc file.
111            --quiet               Incremental quiet.
112            --verbose             Incremental verbose mode.
113         -? --help                Output basic help and exit.
114            --version             Print the version number and exit.
115            --dryrun              Do not perform any actual actions.
116            --confirm             Require direct confirmation before changes.
117

COMMAND DETAILS

119       Most of the commands take parameters. These may be passed after the
120       command name and, where appropriate, an object name. Parameters take
121       the form of key/value pairs separated by an equal sign ("="). For
122       example:
123
124         bucardo add db sea_widgets dbname=widgets host=db.example.com
125
126       Here "dbname" and <host> are parameters.
127
128       Many of the commands also use command-line options, which are specified
129       in the normal way. For example, the "bucardo add db" command could also
130       be written as:
131
132         bucardo add db sea_widgets --dbname widgets --dbhost db.example.com
133
134       However, parameters and options are not directly interchangeable in all
135       cases.  See the documentation for individual commands for their
136       supported options.
137
138   install
139         bucardo install
140
141       Installs the Bucardo schema from the file bucardo.schema into an
142       existing Postgres cluster.  The user "bucardo" and database "bucardo"
143       will be created first as needed. This is an interactive installer, but
144       you can supply the following values from the command line:
145
146       "--dbuser"
147           defaults to postgres
148
149       "--dbname"
150           defaults to postgres
151
152       "--dbport"
153           defaults to 5432
154
155       "--pid-dir"
156           defaults to /var/run/bucardo/
157
158   upgrade
159         bucardo upgrade
160
161       Upgrades an existing Bucardo installation to the current version of the
162       bucardo database script. Requires that bucardo and the bucardo.schema
163       file be the same version. All changes should be backwards compatible,
164       but you may need to re-validate existing scripts to make sure changes
165       get propagated to all databases.
166
167   start
168         bucardo start "Reason"
169
170       Starts Bucardo. Fails if the MCP process is running (determined if its
171       PID file is present).  Otherwise, starts cleanly by first issuing the
172       equivalent of a stop to ask any existing Bucardo processes to exit, and
173       then starting a new Bucardo MCP process. A short reason and name should
174       be provided - these are written to the "reason_file" file
175       (./bucardo.restart.reason.txt by default) and sent in the email sent
176       when Bucardo has been started up. It is also appended to the reason
177       log, which has the same name as the the "reason_file" but ends in .log.
178
179       The options for the "start" command are:
180
181       "--sendmail"
182           Tells Bucardo whether or not to send mail on interesting events:
183           startup, shutdown, and errors. Default is on.
184
185       "--extra-name string"
186           A short string that will be appended to the version string as
187           output by the Bucardo process names. Mostly useful for debugging.
188
189       "--log-destination destination"
190           Determines the destination for logging output. The supported values
191           are:
192
193           "stderr"
194           "stdout"
195           "syslog"
196           "none"
197           A file system directory.
198
199           May be specified more than once, which is useful for, e.g., logging
200           both to a directory and to syslog. If "--log-destination" is not
201           specified at all, the default is to log to files in
202           /var/log/bucardo.
203
204       "--log-separate"
205           Forces creation of separate log files for each Bucardo process of
206           the form "log.bucardo.X.Y", where X is the type of process (MCP,
207           CTL, or KID), and Y is the process ID.
208
209       "--log-extension string"
210           Appends the given string to the end of the default log file name,
211           log.bucardo. A dot is added before the name as well, so a log
212           extension of "rootdb" would produce a log file named
213           log.bucardo.rootdb.
214
215       "--log-clean"
216           Forces removal of all old log files before running.
217
218       "--debug"
219       "--no-debug"
220           Enable or disable debugging output. Disabled by default.
221
222       "--exit-on-nosync"
223       "--no-exit-on-nosync"
224           On startup, if Bucardo finds no active syncs, it normally will
225           continue to run, requiring a restart once syncs are added. This is
226           useful for startup scripts and whatnot.
227
228           If, however, you want it to exit when there are no active syncs,
229           pass the "--exit-on-nosync" option. You can also be explicit that
230           it should not exit when there are no syncs by passing
231           "--no-exit-on-nosync". This is the default value.
232
233   stop
234         bucardo stop "Reason"
235
236       Forces Bucardo to quit by creating a stop file which all MCP, CTL, and
237       KID processes should detect and cause them to exit. Note that active
238       syncs will not exit right away, as they will not look for the stop file
239       until they have finished their current run. Typically, you should scan
240       the list of processes after running this program to make sure that all
241       Bucardo processes have stopped. One should also provide a reason for
242       issuing the stop - usually this is a short explanation and your name.
243       This is written to the "reason_file" file (./bucardo.restart.reason.txt
244       by default) and is also used by Bucardo when it exits and sends out
245       mail about its death. It is also appended to the reason log, which has
246       the same name as the the "reason_file" but ends in .log.
247
248   restart
249         bucardo restart "Reason"
250
251       Stops bucardo, waits for the stop to complete, and then starts it
252       again.  Supports the same options as <"start"/start>. Useful for start
253       scripts. For getting just CTL and KID processes to recognize newly
254       added, updated, or removed objects, use the "reload" command, instead.
255
256   list
257         bucardo list <type> <regex>
258
259       Lists summary information about Bucardo objects. The supported types
260       are:
261
262       ·   "database"
263
264       ·   "dbgroup"
265
266       ·   "relgroup"
267
268       ·   "sync"
269
270       ·   "table"
271
272       ·   "sequence"
273
274       ·   "customcode"
275
276       ·   "customname"
277
278       ·   "customcols"
279
280       ·   "all"
281
282       The "all" option will list information about all object types.
283
284       The optional "regex" option can be used to filter the list to only
285       those matching a regular expression.
286
287   add
288         bucardo add <type> <name> <parameters>
289
290       Adds a new object to Bucardo. The "type" specifies the type of object
291       to add, while the "name" should be the name of the object. The
292       supported types include:
293
294       "db"
295       "dbgroup"
296       "table"
297       "sequence"
298       "all tables"
299       "all sequences"
300       "relgroup"
301       "sync"
302       "customname"
303       "customcols"
304
305       add db
306
307         bucardo add db <name> dbname=actual_name port=xxx host=xxx user=xxx
308
309       Adds one or more new databases. The "name" is the name by which the
310       database will be known to Bucardo, and must be unique. This may vary
311       from the actual database name, as multiple hosts might have databases
312       with the same name. Multiple databases can be added by separating the
313       names with commas. Options that differ between the databases should be
314       separated by a matching commas. Example:
315
316         bucardo add db alpha,beta dbname=sales host=aa,bb user=bucardo
317
318       This command will attempt an immediate test connection to the added
319       database(s).  The supported named parameters are:
320
321       "dbname"
322           The actual name of the database. Required unless using a service
323           file.
324
325       "type"
326           The type of the database. Defaults to "postgres". Currently
327           supported values are:
328
329           ·   "postgres"
330
331           ·   "drizzle"
332
333           ·   "mongo"
334
335           ·   "mysql"
336
337           ·   "maria"
338
339           ·   "oracle"
340
341           ·   "redis"
342
343           ·   "sqlite"
344
345       "user"
346           The username Bucardo should use when connecting to this database.
347
348       "pass"
349           The password Bucardo should use when connecting to this database.
350           It is recommended that you use a .pgpass file rather than entering
351           the password here.
352
353       "host"
354           The host Bucardo should use when connecting to this database.
355           Defaults to the value of the $PGHOSTADDR or $PGHOST environment
356           variables, if present.
357
358       "port"
359           The port Bucardo should use when connecting to this database.
360           Defaults to the value of the $PGPORT environment variable, if
361           present.
362
363       "conn"
364           Additional connection parameters, e.g. "sslmode=require".
365
366       "service"
367           The service name Bucardo should use when connecting to this
368           database.
369
370       "status"
371           Initial status of this database. Defaults to "active" but can be
372           set to "inactive".
373
374       "dbgroup"
375           Name of the database group this database should belong to.
376
377       "addalltables"
378           Automatically add all tables from this database.
379
380       "addallsequences"
381           Automatically add all sequences from this database.
382
383       "server_side_prepares"
384       "ssp"
385           Set to 1 or 0 to enable or disable server-side prepares. Defaults
386           to 1.
387
388       "makedelta"
389           Set to 1 or 0 to enable or disable makedelta. Defaults to 0.
390
391       Additional parameters:
392
393       "--force"
394           Forces the database to be added without running a connection test.
395
396       Note: As a convenience, if the "dbuser" value is its default value,
397       "bucardo", in the event that Bucardo cannot connect to the database, it
398       will try connecting as "postgres" and create a superuser named
399       "bucardo". This is to make things easier for folks getting started with
400       Bucardo, but will not work if it cannot connect as "postgres", or if it
401       the connection failed due to an authentication failure.
402
403       add dbgroup
404
405         bucardo add dbgroup name db1:source db2:source db3:target ...
406
407       Adds one or more databases to the named dbgroup. If the dbgroup doesn't
408       exist, it will be created. The database parameters should specify their
409       roles, either "source" or "target".
410
411       add table
412
413         bucardo add table [schema].table db=actual_db_name
414
415       Adds a table object. The table information will be read from the
416       specified database. Supported parameters:
417
418       "db"
419           The name of the database from which to read the table information.
420           Should be a name known to Bucardo, thanks to a previous call to
421           "add database". Required.
422
423       "autokick"
424           Boolean indicating whether or not the table should automatically
425           send kick messages when it's modified. Overrides the "autokick"
426           parameter of any syncs of which the table is a part.
427
428       "rebuild_index"
429           Boolean indicating whether or not to rebuild indexes after every
430           sync. Off by default. Optional.
431
432       "analyze_after_copy"
433           Boolean indicating whether or not to analyze the table after every
434           sync. Off by default. Optional.
435
436       "vacuum_after_copy"
437           Boolean indicating whether or not to vacuum the table after every
438           sync. Off by default. Optional.
439
440       "relgroup"
441           Adds the table to the named relgroup. If the relgroup does not
442           exist, it will be created. Optional.
443
444       "makedelta"
445           Turns makedelta magic on or off. Value is a list of databases which
446           need makedelta for this table. Value can also be "on" to enable
447           makedelta for all databases.  Defaults to "off".
448
449       "strict_check"
450           Boolean indicating whether or not to be strict when comparing the
451           table between syncs. If the columns have different names or data
452           types, the validation will fail. But perhaps the columns are
453           allowed to have different names or data types. If so, disable
454           "strict_check" and column differences will result in warnings
455           rather than failing the validation. Defaults to true.
456
457       add sequence
458
459         bucardo add sequence [schema].sequence relgroup=xxx
460
461       "db"
462           The name of the database from which to read the sequence
463           information. Should be a name known to Bucardo, thanks to a
464           previous call to "add database".  Required.
465
466       "relgroup"
467           Adds the sequence to the named relgroup. If the relgroup does not
468           exist, it will be created. Optional.
469
470       add all tables
471
472         bucardo add all tables [relgroup=xxx] [pkonly]
473
474       Adds all the tables in all known databases or in a specified database.
475       Excludes tables in the "pg_catalog", "information_schema", and
476       "bucardo" schemas. (Yes, this means that you cannot replicate the
477       Bucardo configuration database using Bucardo. Sorry about that.)
478       Supported options and parameters:
479
480       "db"
481       "--db"
482           Name of the database from which to find all the tables to add. If
483           not provided, tables will be added from all known databases.
484
485       "schema"
486       "--schema"
487       "-n"
488           Limit to the tables in the specified comma-delimited list of
489           schemas. The options may be specified more than once.
490
491       "exclude-schema"
492       "--exclude-schema"
493       "-N"
494           Exclude tables in the specified comma-delimited list of schemas.
495           The options may be specified more than once.
496
497       "table"
498       "--table"
499       "-t"
500           Limit to the specified tables. The options may be specified more
501           than once.
502
503       "exclude-table"
504       "--exclude-table"
505       "-T"
506           Exclude the specified tables. The options may be specified more
507           than once.
508
509       "relgroup"
510       "--relgroup"
511           Name of the relgroup to which to add new tables.
512
513       "pkonly"
514           Exclude tables without primary keys.
515
516       add all sequences
517
518         bucardo add all sequences relgroup=xxx
519
520       Adds all the sequences in all known databases or in a specified
521       database.  Excludes sequences in the "pg_catalog",
522       "information_schema", and "bucardo" schemas. (Yes, this means that you
523       cannot replicate the Bucardo configuration database using Bucardo.
524       Sorry about that.) Supported options and parameters:
525
526       "db"
527       "--db"
528           Name of the database from which to find all the sequences to add.
529           If not provided, sequences will be added from all known databases.
530
531       "schema"
532       "--schema"
533       "-n"
534           Limit to the sequences in the specified comma-delimited list of
535           schemas. The options may be specified more than once.
536
537       "exclude-schema"
538       "--exclude-schema"
539       "-N"
540           Exclude sequences in the specified comma-delimited list of schemas.
541           The options may be specified more than once.
542
543       "relgroup"
544       "--relgroup"
545           Name of the relgroup to which to add new tables or sequences.
546
547       add relgroup
548
549         bucardo add relgroup name
550         bucardo add relgroup name table, sequence, ...
551
552       Adds a relgroup. After the name, pass in an optional list of tables
553       and/or sequences and they will be added to the group.
554
555       add sync
556
557         bucardo add sync name relgroup=xxx dbs=xxx
558
559       Adds a sync, which is a named replication event containing information
560       about what to replicate from where to where. The supported parameters
561       are:
562
563       "dbs"
564           The name of a dbgroup or comma-delimited list of databases. All of
565           the specified databases will be synchronized. Required.
566
567       "dbgroup"
568           The name of a dbgroup. All of the databases within this group will
569           be part of the sync. If the dbgroup does not exists and a separate
570           list of databases is given, the group will be created and
571           populated.
572
573       "relgroup"
574           The name of a relgroup to synchronize. All of the tables and/or
575           sequences in the relgroup will be synchronized. Required unless
576           "tables" is specified.
577
578       "tables"
579           List of tables to add to the sync. This implicitly creates a
580           relgroup with the same name as the sync. Required unless "relgroup"
581           is specified.
582
583       "status"
584           Indicates whether or not the sync is active. Must be either
585           "active" or "inactive". Defaults to "active".
586
587       "rebuild_index"
588           Boolean indicating whether or not to rebuild indexes after every
589           sync.  Defaults to off.
590
591       "lifetime"
592           Number of seconds a KID can live before being reaped. No limit by
593           default.
594
595       "maxkicks"
596           Number of times a KID may be kicked before being reaped. No limit
597           by default.
598
599       "conflict_strategy"
600           The conflict resolution strategy to use in the sync. Supported
601           values:
602
603           "bucardo_source"
604               The rows on the "source" database always "win". In other words,
605               in a conflict, Bucardo copies rows from source to target.
606
607           "bucardo_target"
608               The rows on the "target" database always win.
609
610           "bucardo_skip"
611               Any conflicting rows are simply not replicated. Not recommended
612               for most cases.
613
614           "bucardo_random"
615               Each database has an equal chance of winning each time. This is
616               the default.
617
618           "bucardo_latest"
619               The row that was most recently changed wins.
620
621           "bucardo_abort"
622               The sync is aborted on a conflict.
623
624       "onetimecopy"
625           Determines whether or not a sync should switch to a full copy mode
626           for a single run. Supported values are:
627
628           0: off
629           1: always full copy
630           2: only copy tables that are empty on the target
631       "stayalive"
632           Boolean indicating whether or not the sync processes (CTL) should
633           be persistent. Defaults to false.
634
635       "kidsalive"
636           Boolean indicating whether or not the sync child processes (KID)
637           should be persistent. Defaults to false.
638
639       "autokick"
640           Boolean indicating whether or not tables in the sync should
641           automatically send kick messages when they're modified. May be
642           overridden by the "autokick" parameter of individual tables.
643
644       "checktime"
645           An interval specifying the maximum time a sync should go before
646           being kicked. Useful for busy systems where you don't want the
647           overhead of notify triggers.
648
649       "priority"
650           An integer indicating the priority of the sync. Lower numbers are
651           higher priority. Currently used only for display purposes.
652
653       "analyze_after_copy"
654           Boolean indicating whether or not to analyze tables after every
655           sync. Off by default. Optional.
656
657       "overdue"
658           An interval specifying the amount of time after which the sync has
659           not run that it should be considered overdue. "check_bucardo_sync"
660           issues a warning when a sync has not been run in this amount of
661           time.
662
663       "expired"
664           An interval specifying the amount of time after which the sync has
665           not run that it should be considered expired. "check_bucardo_sync"
666           issues a critical message when a sync has not been run in this
667           amount of time.
668
669       "track_rates"
670           Boolean indicating whether or not to track synchronization rates.
671
672       "rebuild_index"
673           Boolean indicating whether or not to rebuild indexes after every
674           sync. Off by default. Optional.
675
676       "strict_check"
677           Boolean indicating whether or not to be strict when comparing
678           tables in the sync. If the columns have different names or data
679           types, the validation will fail. But perhaps the columns are
680           allowed to have different names or data types. If so, disable
681           "strict_check" and column differences will result in warnings
682           rather than failing the validation. Defaults to true.
683
684       add customname
685
686         bucardo add customname oldname newname [db=name] [sync=name]
687
688       Creates a new Bucardo custom name mapping. This allows the tables
689       involved in replication to have different names on different databases.
690       The "oldname" must contain the schema as well as the table name (if the
691       source database supports schemas). The optional parameters limit it to
692       one or more databases, and/or to one or more syncs. Supported
693       parameters:
694
695       "sync"
696           A sync to which to add the customname. May be specified multiple
697           times.
698
699       "database"
700       "db"
701           A database for which to add the customname. May be specified
702           multiple times.
703
704       add customcols
705
706         bucardo add customcols tablename select_clause [sync=x db=x]
707
708       Specify the list of columns to select from when syncing. Rather than
709       the default "SELECT *" behavior, you can specify any columns you want,
710       including the use of function call return values and things not in the
711       source column list. The optional parameters limit it to one or more
712       databases, and/or to one or more syncs. Some examples:
713
714         bucardo add customcols public.foobar "select a, b, c"
715         bucardo add customcols public.foobar "select a, upper(b) AS b, c" db=foo
716         bucardo add customcols public.foobar "select a, b, c" db=foo sync=abc
717
718       Supported parameters:
719
720       "sync"
721           A sync to which to add the customcols. May be specified multiple
722           times.
723
724       "database"
725       "db"
726           A database for which to add the customcols. May be specified
727           multiple times.
728
729       add customcode
730
731         bucardo add customcode <name> <whenrun=value> <src_code=filename> [optional information]
732
733       Adds a customcode, which is a Perl subroutine that can be run at
734       certain points in the sync process. It might handle exceptions, handle
735       conflicts, or just run at certain times with no expectation of
736       functionality (e.g., before Bucardo drops triggers). Metadata about
737       that point will be passed to the subroutine as a hash reference.
738
739       Supported parameters:
740
741       "name"
742           The name of the custom code object.
743
744       "about"
745           A short description of the custom code.
746
747       "whenrun"
748       "when_run"
749           A string indicating when the custom code should be run. Supported
750           values include:
751
752           "before_txn"
753           "before_check_rows"
754           "before_trigger_drop"
755           "after_trigger_drop"
756           "after_table_sync"
757           "exception"
758           "conflict"
759           "before_trigger_enable"
760           "after_trigger_enable"
761           "after_txn"
762           "before_sync"
763           "after_sync"
764       "getdbh"
765           Boolean indicating whether or not Perl DBI database handles should
766           be provided to the custom code subroutine. If true, database
767           handles will be provided under the "dbh" key of the hash reference
768           passed to the subroutine.  The value under this key will be a hash
769           reference mapping database names to their respective handles.
770
771       "sync"
772           Name of the sync with which to associate the custom code.
773
774       "relation"
775           Name of the table or sequence with which to associate the custom
776           code.
777
778       "status"
779           The current status of this customcode. Anything other than "active"
780           means the code is not run.
781
782       "priority"
783           Number indicating the priority in which order to execute custom
784           codes. Lower numbers are higher priority. Useful for subroutines
785           that set "lastcode" in order to cancel the execution of subsequent
786           custom codes for the same "when_run".
787
788       "src_code"
789           File from which to read the custom code Perl source.
790
791       The body of the Perl subroutine should be implemented in the "src_code"
792       file, and not inside a "sub" declaration. When called, it will be
793       passed a single hash reference with the following keys:
794
795       "syncname"
796           The name of the currently-executing sync.
797
798       "version"
799           The version of Bucardo executing the sync.
800
801       "sourcename"
802           The name of the source database.
803
804       "targetname"
805           The name of the target database.
806
807       "sendmail"
808           A code reference that can be used to send email messages.
809
810       "sourcedbh"
811           A DBI database handle to the sync source database. Provided only to
812           custom code executed by the controller.
813
814       "rellist"
815           An array reference of hash references, each representing a relation
816           in the sync. Provided only to custom code executed by the
817           controller. The keys in the hash are the same as the parameters
818           supported by "add table" and "add sequence", as appropriate.
819
820       "schemaname"
821           The schema for the table that triggered the exception. Provided
822           only to "exception" custom codes.
823
824       "tablename"
825           The name of the table that triggered the exception. Provided only
826           to "exception" custom codes.
827
828       "error_string"
829           The string containing the actual error message. Provided only to
830           "exception" custom codes.
831
832       "deltabin"
833           A hash reference with the name of each source database as a key and
834           a list of all primary keys joined together with "\0". Provided only
835           to "exception" custom codes.
836
837       "attempts"
838           The number of times the sync has been attempted. Provided only to
839           "exception" custom codes.
840
841       "conflicts"
842           A hash reference of conflicting rows. The keys are the primary key
843           values, and the values are hash references with the names of the
844           databases containing the conflicting rows and true values. Provided
845           only to "conflict" custom codes.
846
847       The custom code subroutine may set any of these keys in the hash
848       reference to change the behavior of the sync:
849
850       "message"
851           Message to send to the logs.
852
853       "warning"
854           A warning to emit after the subroutine has returned.
855
856       "error"
857           An error to be thrown after the subroutine has returned.
858
859       "nextcode"
860           Set to send execution to the next custom code of the same type.
861           Mainly useful to exception custom codes, and supported only by
862           custom codes executed by the controller.
863
864       "lastcode"
865           Set to true to have any subsequent custom codes of the same type to
866           be skipped.
867
868       "endsync"
869           Cancels the sync altogether.
870
871       An example:
872
873         use strict;
874         use warnings;
875         use Data::Dumper;
876
877         my $info = shift;
878
879         # Let's open a file.
880         my $file = '/tmp/bucardo_dump.txt';
881         open my $fh, '>:encoding(UTF-8)', $file or do {
882             $info->{warning} = "Cannot open $file: $!\n";
883             return;
884         };
885
886         # Inspect $info for fun.
887         print $fh Dumper $info;
888         close $fh or $info->{warning} = "Error closing $file: $!\n";
889
890         # Log a message and return.
891         $info->{message} = 'IN UR DATABASEZ NORMALIZIN UR RELAYSHUNS';
892         return;
893
894   update
895         bucardo update <type> <name> <parameters>
896
897       Updates a Bucardo object. The "type" specifies the type of object to
898       update, while the "name" should be the name of the object. The
899       supported parameters for each type are the same as those for "add". The
900       supported types are:
901
902       "customcode"
903       "db"
904       "sync"
905       "table"
906       "sequence"
907
908       update customcode
909
910         bucardo update customcode <name> setting=value
911
912       Updates an existing customcode. Items that can be changed are:
913
914       "about"
915           A short description of the custom code.
916
917       "getdbh"
918           Boolean indicating whether or not Perl DBI database handles should
919           be provided to the custom code subroutine. If true, database
920           handles will be provided under the "dbh" key of the hash reference
921           passed to the subroutine.  The value under this key will be a hash
922           reference mapping database names to their respective handles.
923
924       "name"
925           The name of the custom code object.
926
927       "priority"
928           Number indicating the priority in which order to execute custom
929           codes. Lower numbers are higher priority. Useful for subroutines
930           that set "lastcode" in order to cancel the execution of subsequent
931           custom codes for the same "when_run".
932
933       "status"
934           The current status of this customcode. Anything other than "active"
935           means the code is not run.
936
937       "whenrun"
938           A string indicating when the custom code should be run. Supported
939           values include:
940
941           "before_txn"
942           "before_check_rows"
943           "before_trigger_drop"
944           "after_trigger_drop"
945           "after_table_sync"
946           "exception"
947           "conflict"
948           "before_trigger_enable"
949           "after_trigger_enable"
950           "after_txn"
951           "before_sync"
952           "after_sync"
953
954       update db
955
956         bucardo udpate db <name> port=xxx host=xxx user=xxx pass=xxx
957
958       Updates a database. The "name" is the name by which the database is
959       known to Bucardo. This may vary from the actual database name, as
960       multiple hosts might have databases with the same name.
961
962       The supported named parameters are:
963
964       "dbname"
965       "db"
966           The actual name of the database.
967
968       "type"
969       "dbtype"
970           The type of the database. Currently supported values are:
971
972           ·   "postgres"
973
974           ·   "drizzle"
975
976           ·   "mongo"
977
978           ·   "mysql"
979
980           ·   "maria"
981
982           ·   "oracle"
983
984           ·   "redis"
985
986           ·   "sqlite"
987
988       "username"
989       "dbuser"
990       "user"
991           The username Bucardo should use to connect to the database.
992
993       "password"
994       "dbpass"
995       "pass"
996           The password Bucardo should use when connecting to the database.
997
998       "dbhost"
999       "pghost"
1000       "host"
1001           The host name to which to connect.
1002
1003       "dbport"
1004       "pgport"
1005       "port"
1006           The port to which to connect.
1007
1008       "dbconn"
1009       "pgconn"
1010       "conn"
1011           Additional connection parameters, e.g., "sslmode=require".
1012           Optional.
1013
1014       "status"
1015           Status of the database in Bucardo. Must be either "active" or
1016           "inactive".
1017
1018       "dbgroup"
1019       "server_side_prepares"
1020       "ssp"
1021           Enable or disable server-side prepares. Pass 1 to enable them or 0
1022           to disable them.
1023
1024       "makedelta"
1025           Enable or disable makedelta for this database.
1026
1027       "dbservice"
1028       "service"
1029           The service name to use for a Postgres database.
1030
1031       "dbgroup"
1032           A comma-separated list of dbgroups to which to add the database.
1033           The database will be removed from any other dbgroups of which it
1034           was previously a member.
1035
1036       update sync
1037
1038         bucardo update sync syncname relgroup=xxx dbs=xxx
1039
1040       Updates a sync, which is a named replication event containing
1041       information about what to replicate from where to where. The supported
1042       parameters are:
1043
1044       "name"
1045           The name of the sync. Required.
1046
1047       "dbs"
1048           The name of a dbgroup or comma-delimited list of databases.
1049
1050       "relgroup"
1051           The name of a relgroup to synchronize.
1052
1053       "status"
1054           Indicates whether or not the sync is active. Must be either
1055           "active" or "inactive". Note that this will not change the current
1056           run status of the sync, just mark whether it should be active or
1057           inactive on the next reload. Use the "activate sync" and
1058           <deactivate sync> commands to actually activate or deactivate a
1059           sync.
1060
1061       "rebuild_index"
1062           Boolean indicating whether or not to rebuild indexes after every
1063           sync.
1064
1065       "lifetime"
1066           Number of seconds a KID can live before being reaped.
1067
1068       "maxkicks"
1069           Number of times a KID may be kicked before being reaped.
1070
1071       "isolation_level"
1072           The transaction isolation level this sync should use.  Only choices
1073           are "serializable" and "repeatable read"
1074
1075       "conflict_strategy"
1076           The conflict resolution strategy to use in the sync. Supported
1077           values:
1078
1079           "bucardo_source"
1080               The rows on the "source" database always "win". In other words,
1081               in a conflict, Bucardo copies rows from source to target.
1082
1083           "bucardo_target"
1084               The rows on the "target" database always win.
1085
1086           "bucardo_skip"
1087               Any conflicting rows are simply not replicated. Not recommended
1088               for most cases.
1089
1090           "bucardo_random"
1091               Each database has an equal chance of winning each time.
1092
1093           "bucardo_latest"
1094               The row that was most recently changed wins.
1095
1096           "bucardo_abort"
1097               The sync is aborted on a conflict.
1098
1099       "onetimecopy"
1100           Determines whether or not a sync should switch to a full copy mode
1101           for a single run. Supported values are:
1102
1103           0: off
1104           1: always full copy
1105           2: only copy tables that are empty on the target
1106       "stayalive"
1107           Boolean indicating whether or not the sync processes (CTL) should
1108           be persistent.
1109
1110       "kidsalive"
1111           Boolean indicating whether or not the sync child processes (KID)
1112           should be persistent.
1113
1114       "autokick"
1115           Boolean indicating whether or not tables in the sync should
1116           automatically send kick messages when they're modified. May be
1117           overridden by the "autokick" parameter of individual tables.
1118
1119       "checktime"
1120           An interval specifying the maximum time a sync should go before
1121           being kicked. Useful for busy systems where you don't want the
1122           overhead of notify triggers.
1123
1124       "priority"
1125           An integer indicating the priority of the sync. Lower numbers are
1126           higher priority. Currently used only for display purposes.
1127
1128       "analyze_after_copy"
1129           Boolean indicating whether or not to analyze tables after every
1130           sync. Off by default.
1131
1132       "overdue"
1133           An interval specifying the amount of time after which the sync has
1134           not run that it should be considered overdue. "check_bucardo_sync"
1135           issues a warning when a sync has not been run in this amount of
1136           time.
1137
1138       "expired"
1139           An interval specifying the amount of time after which the sync has
1140           not run that it should be considered expired. "check_bucardo_sync"
1141           issues a critical message when a sync has not been run in this
1142           amount of time.
1143
1144       "track_rates"
1145           Boolean indicating whether or not to track synchronization rates.
1146
1147       "rebuild_index"
1148           Boolean indicating whether or not to rebuild indexes after every
1149           sync.
1150
1151       "strict_check"
1152           Boolean indicating whether or not to be strict when comparing
1153           tables in the sync. If the columns have different names or data
1154           types, the validation will fail. But perhaps the columns are
1155           allowed to have different names or data types. If so, disable
1156           "strict_check" and column differences will result in warnings
1157           rather than failing the validation. Defaults to true.
1158
1159       update table
1160
1161         bucardo update table [schema].table db=actual_db_name
1162
1163       Updates a table object. The table information will be read from the
1164       specified database. Supported parameters:
1165
1166       "db"
1167           The name of the database from which to read the table information.
1168           Should be a name known to Bucardo.
1169
1170       "schemaname"
1171           The name of the schema in which the table is found.
1172
1173       "tablename"
1174           The actual name of the table.
1175
1176       "autokick"
1177           Boolean indicating whether or not the table should automatically
1178           send kick messages when it's modified. Overrides the "autokick"
1179           parameter of any syncs of which the table is a part.
1180
1181       "rebuild_index"
1182           Boolean indicating whether or not to rebuild indexes after every
1183           sync.
1184
1185       "analyze_after_copy"
1186           Boolean indicating whether or not to analyze the table after every
1187           sync.
1188
1189       "vacuum_after_copy"
1190           Boolean indicating whether or not to vacuum the table after every
1191           sync.
1192
1193       "relgroup"
1194           Adds the table to the named relgroup. May be specified more than
1195           once.  The table will be removed from any other relgroups.
1196
1197       "makedelta"
1198           Specifies which databases need makedelta enabled for this table.
1199
1200       "strict_check"
1201           Boolean indicating whether or not to be strict when comparing the
1202           table between syncs. If the columns have different names or data
1203           types, the validation will fail. But perhaps the columns are
1204           allowed to have different names or data types. If so, disable
1205           "strict_check" and column differences will result in warnings
1206           rather than failing the validation. Defaults to true.
1207
1208       update sequence
1209
1210         bucardo update sequence [schema].sequence relgroup=xxx
1211
1212       "db"
1213           The name of the database where the sequence lives.
1214
1215       "schemaname"
1216           The name of the schema in which the sequence is found.
1217
1218       "relgroup"
1219           Adds the sequence to the named relgroup. May be speci<fied more
1220           than once. The sequence will be removed from any other relgroups.
1221
1222   remove
1223         bucardo remove <item_type> <item_name>
1224
1225       Removes one or more objects from Bucardo. Valid item types are;
1226
1227       ·   "db" or "database"
1228
1229           Use the "--force" option to clear out related tables and groups
1230           instead of erroring out.
1231
1232       ·   "dbgroup"
1233
1234       ·   "relgroup"
1235
1236       ·   "sync"
1237
1238       ·   "table"
1239
1240       ·   "sequence"
1241
1242       ·   "customcols"
1243
1244       ·   "customname"
1245
1246       ·   "customcode"
1247
1248   kick
1249         bucardo kick <syncname(s)> [timeout]
1250
1251       Tells one or more named syncs to fire as soon as possible. Note that
1252       this simply sends a request that the sync fire: it may not start right
1253       away if the same sync is already running, or if the source or target
1254       database has exceeded the number of allowed Bucardo connections. If the
1255       final argument is a number, it is treated as a timeout. If this number
1256       is zero, the bucardo command will not return until the sync has
1257       finished. For any other number, the sync will wait at most that number
1258       of seconds.  If any sync has not finished before the timeout, an exit
1259       value of 1 will be returned. Errors will cause exit values of 2 or 3.
1260       In all other cases, an exit value of 0 will be returned.
1261
1262       If a timeout is given, the total completion time in seconds is also
1263       displayed. If the sync is going to multiple targets, the time that each
1264       target takes from the start of the kick is also shown as each target
1265       finishes. Options:
1266
1267       "--retry"
1268           The number of times to retry a sync if it fails. Defaults to 0.
1269
1270       "--retry-sleep"
1271           How long to sleep, in seconds, between each retry attempt.
1272
1273       "--notimer"
1274           By default, kicks with a timeout argument give a running real-time
1275           summary of time elapsed by using the backspace character. This may
1276           not be wanted if running a kick, for example, via a cronjob, so
1277           turning --notimer on will simply print the entire message without
1278           backspaces.
1279
1280   pause
1281         bucardo pause <syncname(s)>
1282         bucardo pause all
1283         bucardo resume <syncname(s)>
1284         bucardo resume all
1285
1286       Tells one or more named syncs to temporarily pause, or to resume from a
1287       previous pause. This only applies to active syncs and only takes effect
1288       if Bucardo is currently running. The keyword 'all' can be used as well
1289       to pause or resume all known active syncs.
1290
1291   reload config
1292         bucardo reload config
1293         bucardo reload config 30
1294
1295       Sends a message to all CTL and KID processes asking them to reload the
1296       Bucardo configuration. This configuration is a series of key/value
1297       pairs that configure Bucardo's behavior, and not any of the objects
1298       managed by the "add", "remove", or "update" commands.
1299
1300       By default, Bucardo will send the message and then exit. Pass an
1301       optional number and Bucardo will instead wait up to that length of time
1302       for all child processes to report completion.
1303
1304   set
1305         bucardo set setting1=value [setting2=value]
1306
1307       Sets one or more configuration setting table. Setting names are case-
1308       insensitive. The available settings are:
1309
1310       "autosync_ddl"
1311           Which DDL changing conditions do we try to remedy automatically?
1312           Default: "newcol".
1313
1314       "bucardo_version"
1315           Current version of Bucardo. Default: 5.4.1.
1316
1317       "bucardo_vac"
1318           Do we want the automatic VAC daemon to run? Default: 1.
1319
1320       "bucardo_initial_version"
1321           Bucardo version this schema was created with. Default: 5.4.1.
1322
1323       "ctl_checkonkids_time"
1324           How often does the controller check on the kids health? Default:
1325           10.
1326
1327       "ctl_createkid_time"
1328           How long do we sleep to allow kids-on-demand to get on their feet?
1329           Default: 0.5.
1330
1331       "ctl_sleep"
1332           How long does the controller loop sleep? Default: 0.2.
1333
1334       "default_conflict_strategy"
1335           Default conflict strategy for all syncs. Default: "bucardo_latest".
1336
1337       "default_email_from"
1338           Who the alert emails are sent as. Default: "nobody@example.com".
1339
1340       "default_email_host"
1341           Which host to send email through. Default: "localhost".
1342
1343       "default_email_to"
1344           Who to send alert emails to. Default: "nobody@example.com".
1345
1346       "email_debug_file"
1347           File to save a copy of all outgoing emails to. Default: None.
1348
1349       "endsync_sleep"
1350           How long do we sleep when custom code requests an endsync? Default:
1351           1.0.
1352
1353       "flatfile_dir"
1354           Directory to store the flatfile output inside of. Default: ".".
1355
1356       "host_safety_check"
1357           Regex to make sure we don't accidentally run where we should not.
1358           Default: None.
1359
1360       "isolation_level"
1361           The transaction isolation level all sync should use. Defaults to
1362           'serializable'.  The only other valid option is 'repeatable read'
1363
1364       "kid_deadlock_sleep"
1365           How long to sleep in seconds if we hit a deadlock error. Default:
1366           0.5.  Set to -1 to prevent the kid from retrying.
1367
1368       "kid_nodeltarows_sleep"
1369           How long do kids sleep if no delta rows are found? Default: 0.5.
1370
1371       "kid_pingtime"
1372           How often do we ping check the KID? Default: 60.
1373
1374       "kid_restart_sleep"
1375           How long to sleep in seconds when restarting a kid? Default: 1.
1376
1377       "kid_serial_sleep"
1378           How long to sleep in seconds if we hit a serialization error.
1379           Default: 0.5.  Set to -1 to prevent the kid from retrying.
1380
1381       "kid_sleep"
1382           How long does a kid loop sleep? Default: 0.5.
1383
1384       "log_conflict_file"
1385           Name of the conflict detail log file. Default:
1386           "bucardo_conflict.log".
1387
1388       "log_level"
1389           How verbose to make the logging. Higher is more verbose. Default:
1390           "normal".
1391
1392       "log_microsecond"
1393           Show microsecond output in the timestamps? Default: 0.
1394
1395       "log_showlevel"
1396           Show log level in the log output? Default: 0.
1397
1398       "log_showline"
1399           Show line number in the log output? Default: 0.
1400
1401       "log_showpid"
1402           Show PID in the log output? Default: 1.
1403
1404       "log_showtime"
1405           Show timestamp in the log output?  0=off  1=seconds since epoch
1406           2=scalar gmtime  3=scalar localtime. Default: 3.
1407
1408       "mcp_dbproblem_sleep"
1409           How many seconds to sleep before trying to respawn. Default: 15.
1410
1411       "mcp_loop_sleep"
1412           How long does the main MCP daemon sleep between loops? Default:
1413           0.2.
1414
1415       "mcp_pingtime"
1416           How often do we ping check the MCP? Default: 60.
1417
1418       "mcp_vactime"
1419           How often in seconds do we check that a VAC is still running?
1420           Default: 60.
1421
1422       "piddir"
1423           Directory holding Bucardo PID files. Default: "/var/run/bucardo".
1424
1425       "reason_file"
1426           File to hold reasons for stopping and starting. Default:
1427           "bucardo.restart.reason.txt".
1428
1429       "reload_config_timeout"
1430           Number of seconds the "reload_config" command should wait for the
1431           reload to complete.  Default: 30.
1432
1433       "semaphore_table"
1434           Table to let apps know a sync is ongoing. Default:
1435           "bucardo_status".
1436
1437       "statement_chunk_size"
1438           How many primary keys to shove into a single statement. Default:
1439           10000.
1440
1441       "stats_script_url"
1442           Location of the stats script. Default: "http://www.bucardo.org/".
1443
1444       "stopfile"
1445           Name of the semaphore file used to stop Bucardo processes. Default:
1446           "fullstopbucardo".
1447
1448       "syslog_facility"
1449           Which syslog facility level to use. Default: "log_local1".
1450
1451       "tcp_keepalives_count"
1452           How many probes to send. 0 indicates sticking with system defaults.
1453           Default: 0.
1454
1455       "tcp_keepalives_idle"
1456           How long to wait between each keepalive probe. Default: 0.
1457
1458       "tcp_keepalives_interval"
1459           How long to wait for a response to a keepalive probe. Default: 0.
1460
1461       "vac_run"
1462           How often does the VAC process run? Default: 30.
1463
1464       "vac_sleep"
1465           How long does VAC process sleep between runs? Default: 120.
1466
1467       "warning_file"
1468           File containing all log lines starting with "Warning". Default:
1469           "bucardo.warning.log".
1470
1471   show
1472         bucardo show all|<setting> [<setting>...]
1473
1474       Shows the current Bucardo settings. Use the keyword "all" to see all
1475       the settings, or specify one or more search terms. See "set" for
1476       complete details on the configuration settings.
1477
1478   config
1479         bucardo config show all|<setting> [<setting>...]
1480         bucardo config set <setting=value> [<setting=value>...]
1481
1482       Deprecated interface for showing and setting configuration settings.
1483       Use the "show" and "set" commands, instead.
1484
1485   ping
1486         bucardo ping
1487         bucardo ping 60
1488         bucardo ping 0
1489
1490       Sends a ping notice to the MCP process to see if it will respond. By
1491       default, it will wait 15 seconds. A numeric argument will change this
1492       timeout. Using a 0 as the timeout indicates waiting forever. If a
1493       response was returned, the program will exit with a value of 0. If it
1494       times out, the value will be 1.  Returns a Nagios like message starting
1495       with "OK" or "CRITICAL" for success or failure.
1496
1497   status
1498         bucardo status [syncname(s)] [--sort=#] [--show-days] [--compress]
1499
1500       Shows the brief status of all known syncs in a tabular format. If given
1501       one or more sync names, shows detailed information for each one. To see
1502       detailed information for all syncs, simply use "status all"
1503
1504       When showing brief information, the columns are:
1505
1506       1. Name
1507           The name of the sync
1508
1509       2. State
1510           The state of the sync. Can be 'Good', 'Bad', 'Empty', 'No records
1511           found', 'Unknown', or the run state for a currently-running sync.
1512
1513       3. Last good
1514           When the sync last successfully ran.
1515
1516       4. Time
1517           How long it has been since the last sync success
1518
1519       5. Last I/U
1520           The number of insert and deletes performed by the last successful
1521           sync. May also show the number of rows truncated (T) or conflicted
1522           (C), if applicable.
1523
1524       6. Last bad
1525           When the sync last failed.
1526
1527       7. Time
1528           How long it has been since the last sync failure
1529
1530       The options for "status" are:
1531
1532       "--show-days"
1533           Specifies whether or not do list the time interval with days, or
1534           simply show the hours. For example, "3d 12h 6m 3s" vs. "48h 6m 3s"
1535
1536       "--compress"
1537           Specifies whether or not to compress the time interval by removing
1538           spaces.  Mostly used to limit the width of the 'status' display.
1539
1540       "--sort=#"
1541           Requests sorting of the 'status' output by one of the nine columns.
1542           Use a negative number to reverse the sort order.
1543
1544   activate
1545         bucardo activate syncname [syncname2 syncname3 ...] [timeout]
1546
1547       Activates one or more named syncs. If given a timeout argument, it will
1548       wait until it has received confirmation from Bucardo that each sync has
1549       been successfully activated.
1550
1551   deactivate
1552         bucardo deactivate syncname [syncname2 syncname3 ...] [timeout]
1553
1554       Deactivates one or more named syncs. If given a timeout argument, it
1555       will wait until it has received confirmation from Bucardo that the sync
1556       has been successfully deactivated.
1557
1558   message
1559         bucardo message 'I WAS HERE'
1560
1561       Sends a message to the running Bucardo logs. This message will appear
1562       prefixed with "MESSAGE: ". If Bucardo is not running, the message will
1563       go to the logs the next time Bucardo runs and someone adds another
1564       message.
1565
1566   reload
1567         bucardo reload [syncname2 syncname3 ...]
1568
1569       Sends a message to one or more sync processes, instructing them to
1570       reload.  Waits for each to reload before going on to the next.
1571       Reloading consists of deactivating a sync, reloading its information
1572       from the database, and activating it again.
1573
1574   inspect
1575         bucardo inspect <type> <name> [<name2>...]
1576
1577       Inspects one or more objects of a particular type. The results are sent
1578       to "STDOUT". The supported types include:
1579
1580       "table"
1581       "sync"
1582       "relgroup"
1583
1584   validate
1585         bucardo validate all|<sync> [<sync>...]
1586
1587       Validates one or more syncs. Use the keyword "all" to validate all
1588       syncs, or specify one or more syncs to validate.
1589
1590       Note that this command executes a subset of all the validation done
1591       when a sync is started or activated.
1592
1593   purge
1594         bucardo purge all|<table> [<table>...]
1595
1596       Purges the delta and track tables for one or more tables, for one or
1597       more databases. Use the keyword "all" to validate all tables, or
1598       specify one or more tables to validate.
1599
1600   delta
1601         bucardo delta [total] [<database>...]
1602
1603       Show the current delta count for each source target. Provide a list of
1604       databases to limit it to just the given ones. Wildcards are allowed.
1605       Use the special name "totals" to show only the grand total.
1606
1607   help
1608         bucardo help
1609         bucardo help <command>
1610         bucardo help <command> <action>
1611
1612       Get help. General help can be returned, as well as help for a single
1613       command or a command and its action. Some examples:
1614
1615         bucard help list
1616         bucard help add table
1617

OPTIONS DETAILS

1619       It is usually easier to set most of these options at the top of the
1620       script, or make an alias for them, as they will not change very often
1621       if at all.
1622
1623       "-d"
1624       "--db-name"
1625             bucardo --db-name widgets
1626             bucardo -d bricolage
1627
1628           Name of the Bucardo database to which to connect.
1629
1630       "-U"
1631       "--db-user"
1632             bucardo --db-user postgres
1633             bucardo -U Mom
1634
1635           User name to use when connecting to the Bucardo database.
1636
1637       "-P"
1638       "--db-pass"
1639             bucardo --db-pass s3cr1t
1640             bucardo -P lolz
1641
1642           Password to use when connecting to the Bucardo database.
1643
1644       "-h"
1645       "--db-host"
1646             bucardo --db-host db.example.com
1647             bucardo -h db2.example.net
1648
1649           Host name to use when connecting to the Bucardo database.
1650
1651       "-p"
1652       "--db-port"
1653             bucardo --db-port 7654
1654
1655           Port number to connect to when connecting to the Bucardo database.
1656
1657       "--bucardorc"
1658             bucardo --bucardorc myrcfile
1659
1660           Use the specified file for configuration instead of the default
1661           ./.bucardorc.
1662
1663       "--no-bucardorc"
1664           Do not use the ./.bucardorc configuration file.
1665
1666       "--verbose"
1667           Makes bucardo run verbosely. Default is off.
1668
1669       "--quiet"
1670           Tells bucardo to be as quiet as possible. Default is off.
1671
1672       "--help"
1673           Shows a brief summary of usage for bucardo.
1674

FILES

1676       In addition to command-line configurations, you can put any options
1677       inside of a file. The file .bucardorc in the current directory will be
1678       used if found. If not found, then the file ~/.bucardorc will be used.
1679       Finally, the file /etc/bucardorc will be used if available. The format
1680       of the file is option = value, one per line. Any line starting with a
1681       '#' will be skipped. Any values loaded from a bucardorc file will be
1682       overwritten by command-line options. All bucardorc files can be ignored
1683       by supplying a "--no-bucardorc" argument. A specific file can be forced
1684       with the "--bucardorc=file" option; if this option is set, bucardo will
1685       refuse to run unless that file can be read.
1686

ENVIRONMENT VARIABLES

1688       The bucardo script uses $ENV{HOME} to look for a .bucardorc file.
1689

BUGS

1691       Bug reports and feature requests are always welcome, please visit
1692       bucardo.org <http://bucardo.org>, file GitHub Issues
1693       <http://github.com/bucardo/bucardo/issues>, or post to our email list
1694       <https://mail.endcrypt.com/mailman/listinfo/bucardo-general>.
1695

SEE ALSO

1697       Bucardo
1698
1700       Copyright 2006-2015 Greg Sabino Mullane <greg@endpoint.com>
1701
1702       This program is free to use, subject to the limitations in the LICENSE
1703       file.
1704
1705
1706
1707perl v5.28.1                      2015-09-27                        BUCARDO(1)
Impressum