dbclean(8) Distributed Checksum Clearinghouse dbclean(8)
dbclean -- Clean Distributed Checksum Clearinghouse Database
dbclean [-dDfFNRPSVq] [-i id] [-a [server-addr][,port]] [-h homedir]
[-G on] [-s hash-size] [-e seconds] [-E spamsecs]
[-t type,allsecs,threshold,bulksecs] [-L ltype,facility.level]
Dbclean creates empty, rebuilds corrupted, and deletes or expires old
reports of checksums from DCC databases. It should be installed where it
will be found with the path given the DCC server daemon when the daemon
needs to expand the hash table. See dccd(8). It should also be run by
cron(8) approximately daily.
If the hash table in the database has been damaged, dbclean tries to
repair the database.
The contents of the whitelist file are built into the DCC server's data-
base. Changes to the whitelist are not effective until dbclean is run to
expire reports. White or blacklists can also be used by DCC clients, and
generally work better there.
OPTIONS
The following options are available:
-d enables debugging output. Additional -d options increase the number
of messages.
-D indicates that dccd(8) started dbclean.
-F uses read() and write() instead of mmap() in some cases to access
the DCC database. This works better on some versions of Solaris
provided the entire DCC database fits in RAM and provided the file
system has not been tuned for the large, random accesses of a DCC
database. It is the default on Solaris.
-f turns off -F.
-N creates a new, empty database. There must not be an existing data-
base and the DCC server, dccd(8), must not be running.
-R repairs a database.
-P expires old checksums from a database using the -e, -E, and -t val-
ues from the preceding use of dbclean. -P cannot be used with -e,
-E, or -t. Note also that using -P differs from not using -e -E or
-t, because in the absence of all four, their default values are
used.
-S says that the DCC server, dccd(8), is not running and so dbclean
should run stand-alone and not try to tell the DCC server about
changes to the database. -i is not needed when -S is present.
-V displays the version of the DCC database cleaner.
-q quiets the announcement of results at the end.
-i id
specifies the DCC ID recognized by the local DCC server as its own.
This ID allows the DCC server to recognize commands from dbclean to
stop using the database while it is being cleaned.
-a [server-addr][,port]
is commonly used to specify a UDP port or IP address of the local
server other than the default.
-h homedir
overrides the default DCC home directory, which is often /var/dcc.
-G on
cleans a greylist database.
-s hash-size
specifies a size for the hash table. By default the hash table is
rebuilt to be approximately 80% full based on an estimate of the
number of distinct checksums in the main file.
-e seconds
specifies that reports older than seconds and with totals below
their -t thresholds should be deleted. Reports older than seconds
of checksums that have been reported more recently are summarized in
the database. The default value is 2 days or the value of -E,
whichever is smaller. The 2 day default is reduced if the system
does not appear to have enough RAM to hold the database. The mini-
mum is 1 hour. Seconds can also be NEVER or a number of hours,
days, or weeks followed by HOURS, H, DAYS, D, WEEKS or W.
DCC servers that are not very busy and are isolated or do not
receive "floods" of checksums from busy servers should use longer
values to increase their chances of recognizing bulk mail.
-E spamsecs
changes the expiration of checksums exceding -t thresholds from the
default of 30 days or the explicit value of -e, whichever is larger.
The 30 day default is reduced if the system does not have enough RAM
to hold the database. Spamsecs can also be NEVER or a number of
hours, days, or weeks followed by HOURS, H, DAYS, D, WEEKS or W.
-t type,allsecs[,threshold,bulksecs]
overrides the global -e setting and specifies that reports of check-
sums of type with total counts of at least threshold should be kept
for bulksecs seconds. All reports should be kept for the shorter
duration, allsecs seconds. The threshold is either a number or the
string MANY indicating millions of targets. By default dbclean acts
as if given -t Fuz1,seconds,20,spamsecs -t Fuz2,seconds,20,spamsecs,
where seconds is the value for -e and spamsecs is the value for -E.
All other checksum types act as if -t type,seconds were specified.
Allsecs and bulksecs can also be NEVER or a number of hours, days,
or weeks followed by HOURS, H, DAYS, D, WEEKS or W.
-L ltype,facility.level
specifies how messages should be logged. Ltype must be error or
info to indicate which of the two types of messages are being con-
trolled. Level must be a syslog(3) level among EMERG, ALERT,
CRIT, ERR, WARNING, NOTICE, INFO, and DEBUG. Facility must be among
AUTH, AUTHPRIV, CRON, DAEMON, FTP, KERN, LPR, MAIL, NEWS, USER,
UUCP, and LOCAL0 through LOCAL7. The default is equivalent to
-L info,MAIL.NOTICE -L error,MAIL.ERR
dbclean exits 0 on success, and > 0 if an error occurs.
/var/dcc is the DCC home directory containing data and control
files.
dcc_db is the main file containing mail checksums.
dcc_db.hash mail checksum database hash table.
grey_db is the database of greylist checksums.
grey_db.hash is the greylist database hash table.
dcc_db-new, dcc_db-new.hash, grey_db-new, grey_db-new.hash
new database and hash files until they are renamed.
dcc_db-old, grey_db-old
previous database files.
ids list of IDs and passwords, as described in dccd(8).
whitelist contains the DCC server whitelist in the format described
in dcc(8).
grey_whitelist
contains the greylist server whitelist.
cdcc(8), cron(8), dcc(8), dccd(8), dblist(8), dccifd(8), dccm(8),
dccproc(8).
Implementation of dbclean was started at Rhyolite Software in 2000. This
describes version 1.2.71.
FreeBSD 4.9 March 5, 2005 FreeBSD 4.9
Man(1) output converted with
man2html
modified for the DCC $Date 2001/04/29 03:22:18 $