dbclean(8)

NAME
dbclean - Clean Distributed Checksum Clearinghouse Database

SYNOPSIS
dbclean [-dfFNPSVq] [-i id] [ -a [server-addr] [,port]] [-h homedir]
[-G on] [-R mode] [-s hash-size] [-e seconds] [-E spamsecs]
[-L ltype,facility.level]

DESCRIPTION
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 database. 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.

-F  uses write() instead of mmap() in some cases to modify 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 database and the DCC server, dccd(8), must not be running.

-P  expires old checksums from a database using the -e -and -E values from the preceding use of dbclean. -P cannot be used with -e or -E. Note also that using -P differs from not using -e or -E, 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, /usr/local/dcc.

-G on
    cleans a greylist database.

-R mode
    repairs a database or does a quick cleaning. Mode must be one of the following:
    bad to repair a broken database.
    quick
        for a quick, superficial cleaning during the day.
    hash
        to rebuild a hash not sent to disk before the system was recently restarted.
    cron
        for the nightly cleaning by the cron(8) job /usr/local/dcc/libexec/cron-dccd
    del to finish processing a delete command received by dccd(8).

-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 10 targets should be deleted. Reports older than seconds of checksums that have been reported more recently are summarized in the database. The default value is 1DAY or the value of -E, whichever is smaller. The 1 day default is reduced if the system does not appear to have enough RAM to hold the database. The minimum 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 with more than 10 targets from the default of 30DAYS or the explicit value of -e, whichever is larger. The 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.

-L ltype,facility.level
    specifies how messages should be logged. Ltype must be error, info, or off to indicate which of the two types of messages are being controlled or to turn off all syslog(3) messages from dbclean. 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.

FILES
/usr/local/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.

SEE ALSO
cdcc(8), cron(8), dcc(8), dccd(8), dblist(8), dccifd(8), dccm(8), dccproc(8).

HISTORY
Implementation of dbclean was started at Rhyolite Software, in 2000. This document describes version 1.3.116.