mkdbm - build a DBM file suitable for use by smail
/usr/lib/smail/mkdbm [ -f ] [ -v ] [ -n ] [ -d ] [ -y ]
[ -o output-name ] [ file ... ]
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
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
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.
As an example of the use of mkdbm consider a file, paths, containing the
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.
mkaliases(8), mkline(8), mksort(8), smail(5), smail(8), pathalias(8).
dbmXXXXXX.dir The temporary files created in the same directory as the
eventual output files.
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.