MKDBM(8)

NAME
mkdbm - build a DBM file suitable for use by smail

SYNOPSIS
/usr/lib/smail/mkdbm [ -f ] [ -v ] [ -n ] [ -d ] [ -y ]
[ -o output-name ] [ file ... ]

DESCRIPTION
Mkdbm takes lines as input and writes them to a set of files in the format produced by the dbm(3X) function library. The key is formed from the characters up to, but not including, a colon (``:'') or white space character. The data after the colon or white space character forms the value associated with the key. If -f is given, the key is folded to lower case before being stored in the database.

If no input files are specified, the standard input is read. In addition, if a filename of - is given, the standard input is inserted at that point.

The -o option sets the name for the DBM database. If not specified explicitly, the name of the database is taken from the first file argument. If no file arguments are given, or the first file argument is - then a database is created in the current directory with the name dbm.

The mkdbm program can be used to produce DBM files which can then be read by a smail(8) pathalias router or aliasfile director. The router or directory should be configured to use the dbm file access protocol. See smail(5) for more information on routers and directors. For some databases, mkline(8) should be used to form single line records with comments and extra white-space removed.

The generated database contains a single nul byte at the end of each key and value. Also a single record containing ``@'' as a key and value is created for compatibility with the Berkeley sendmail(8) program's alias files. The ending nul bytes can be suppressed with the -n option, and the extra ``@'' record can be suppressed with the -d option. Use of -n is incompatible with the smail dbm file access method.

When creating the database, temporary DBM files are built in the same directory as the eventual output files. Then, when it is completed, any DBM files currently existing under the target name are removed, mkdbm sleeps between one and two seconds, and then the temporary DBM files are moved to the target names. This database creation method is not compatible with the locking method used by Berkeley sendmail.

If the -v flags is specified mkdbm writes statistics to the standard output.

The -y flag is used to create YP-compatible dbm files. This obviates the need for keeping sendmail around to recreate the YP alias database. Calling mkdbm with the arguments -ynd generates dbm files that are compatible with regular YP databases. Using just the argument -y generates a database that is compatible with the YP mail.alias database.

EXAMPLE
As an example of the use of mkdbm consider a file, paths, containing the routing information:

    .COM	sun!%s
    Stargate.COM	ames!cmcl2!uiucdcs!stargate!%s
    ames	ames!%s
    .ATT.COM	mtune!%s
    mtune	mtune!%s

Given this file, the command mkdbm -f paths will produce a dbm database in the files paths.pag and paths.dir containing the above entries, with downcased keys. For example, one entry will contain the key stargate.com with an associated value of ames!cmcl2!uiucdcs!stargate!%s.

SEE ALSO
mkaliases(8), mkline(8), mksort(8), smail(5), smail(8), pathalias(8).

FILES
dbmXXXXXX.pag
dbmXXXXXX.dir
    The temporary files created in the same directory as the eventual output files.

COPYRIGHT
Copyright(C)1987, 1988 Ronald S. Karr and Landon Curt Noll
Copyright(C)1992 Ronald S. Karr
See a file COPYING, distributed with the source code, or type smail -bc for distribution rights and restrictions associated with this software.