EXIM_DB(8)EXIM_DB(8)NAME
exim_db - Manage Exim's hint databases (exim_dumpdb, exim_fixdb,
exim_tidydb)
SYNOPSIS
exim_dumpdb spooldir database
exim_fixdb spooldir database
exim_tidydb [-f] [-t time] spooldir database
DESCRIPTION
Three utility programs are provided for maintaining the DBM files that
Exim uses to contain its delivery hint information. Each program
requires two arguments. The first specifies the name of Exim's spool
directory, and the second is the name of the database it is to operate
on. These are as follows:
retry the database of retry information
wait-<transport name>
databases of information about messages waiting for remote hosts
misc other hints data (for example, for serializing ETRN runs)
The entire contents of a database are written to the standard
output by the exim_dumpdb program, which has no options or argu‐
ments other than the spool and database names. For example, to
dump the retry database:
exim_dumpdb /var/spool/exim retry
Two lines of output are produced for each entry:
T:mail.ref.example:192.168.242.242 146 77 Connection refused
31-Oct-1995 12:00:12 02-Nov-1995 12:21:39 02-Nov-1995 20:21:39 *
The first item on the first line is the key of the record. It
starts with one of the letters R, or T, depending on whether it
refers to a routing or transport retry. For a local delivery,
the next part is the local address; for a remote delivery it is
the name of the remote host, followed by its failing IP address
(unless "no_retry_include_ip_address" is set on the smtp trans-
port). Then there follows an error code, an additional error
code, and a textual description of the error.
The three times on the second line are the time of first fail‐
ure, the time of the last delivery attempt, and the computed
time for the next attempt. The line ends with an asterisk if the
cutoff time for the last retry rule has been exceeded.
Each output line from exim_dumpdb for the wait-"xxx databases
consists of a host name followed by a list of ids for messages
that are or were waiting to be delivered to that host. If there
are a very large number for any one host, continuation records,
with a sequence number added to the host name, may be seen. The
data in these records is often out of date, because a message
may be routed to several alternative hosts, and Exim makes no
effort to keep cross- references.
The exim_tidydb utility program is used to tidy up the contents
of the hints databases. If run with no options, it removes all
records from a database that are more than 30 days old. The cut‐
off date can be altered by means of the -t option, which must be
followed by a time. For example, to remove all records older
than a week from the retry database:
exim_tidydb -t 7d /var/spool/exim retry
Both the wait-xxx and retry databases contain items that involve
message ids. In the former these appear as data in records keyed
by host - they were messages that were waiting for that host -
and in the latter they are the keys for retry information for
messages that have suffered certain types of error. When
"exim_tidydb" is run, a check is made to ensure that message ids
in database records are those of messages that are still on the
queue. Message ids for messages that no longer exist are removed
from "wait-"xxx records, and if this leaves any records empty,
they are deleted. For the "retry" database, records whose keys
are non-existent message ids are removed. The "exim_tidydb"
utility outputs comments on the standard output whenever it
removes infor- mation from the database.
Removing records from a DBM file does not normally make the file
smaller, but all the common DBM libraries are able to re-use the
space that is released. It is therefore suggested that
exim_tidydb be run periodically on all the hints databases, but
at a quiet time of day, because it requires a database to be
locked (and therefore inaccessible to Exim) while it does its
work.
The exim_fixdb program is a utility for interactively modifying
databases. Its main use is for testing Exim, but it might also
be occasionally useful for getting round problems in a live sys‐
tem. It has no options, and its interface is somewhat crude. On
entry, it prompts for input with a right angle-bracket. A key
of a database record can then be entered, and the data for that
record is displayed.
If 'd' is typed at the next prompt, the entire record is
deleted. For all except the retry database, that is the only
operation that can be carried out. For the retry database, each
field is output preceded by a number, and data for individual
fields can be changed by typing the field number followed by new
data, for example:
> 4 951102:1000
resets the time of the next delivery attempt. Time values are
given as a sequence of digit pairs for year, month, day, hour,
and minute. Colons can be used as optional separators.
SEE ALSOexim(8), /usr/share/doc/packages/exim/
AUTHOR
This manual page was stitched together from spec.txt by Andreas Metzler
<ametzler at downhill.at.eu.org>, for the Debian GNU/Linux system (but
may be used by others).
Oktober 15, 2002 EXIM_DB(8)