MAKEHISTORY(8)
NAME
makehistory - tools to recover Usenet history database.
SYNOPSIS
makehistory [ -A oldtmp ] [ -a active ] [ -b ] [ -f file-
name ] [ -i ] [ -n ] [ -o ] [ -r ] [ -s size ] [ -T tmpdir
] [ -u [ -v ] ]
DESCRIPTION
Makehistory rebuilds the history(5) text file and the
associated dbz(3) database. The default name of the text
file is /var/lib/news/history; to specify a different
name, use the ``-f'' flag. Makehistory scans the
active(5) file to determine which newsgroup directories
within the spool directory, /var/spool/news, should be
scanned. (If a group is removed, but its spool directory
still exists, makehistory will ignore it.) The program
reads each file found and writes a history line for it.
After the text file is written, makehistory will build the
dbz database.
OPTIONS
-A If the ``-A'' flag is used then the argument given
is the pathname makehistory can use to store a copy
of the history file as it's being built. It will be
appended to, so existing data will not be lost (and
so should be valid history entries).
-a If the ``-a'' flag is given then the argument is
the active file to use rather than the default one
of /var/lib/news/active.
-b If the ``-b'' flag is used, then makehistory will
remove any articles that do not have valid Message-
ID headers in them.
-f If the ``-f'' flag is used, then the database files
are named file.dir and file.pag. If the ``-f''
flag is not used, then a temporary link to the name
history.n is made and the database files are writ-
ten as history.n.pag and history.n.dir.
-o If the ``-o'' flag is used, then the link is not
made and any existing history files are overwrit-
ten. If the old database exists, makehistory will
use it to determine the size of the new database.
-i To ignore the old database use the ``-i'' flag.
Using the ``-o'' flag implies the ``-i'' flag.
-s The program will also ignore any old database if
the ``-s'' flag is used to specify the approximate
number of entries in the new database. Accurately
specifying the size is an optimization that will
create a more efficient database. (The size should
be the estimated eventual size of the file, typi-
cally the size of the old file.) For more informa-
tion, see the discussion of dbzfresh and dbzsize in
dbz(3).
-u If the ``-u'' flag is given, then makehistory
assumes that innd is running. It will pause the
server while scanning, and then send ``addhist''
commands (see ctlinnd(8)) to the server for any
article that is not found in the dbz database. The
command ``makehistory -bu'' is useful after a sys-
tem crash, to delete any mangled articles and bring
the article database back into a more consistent
state.
-v If the ``-v'' flag is used with the ``-u'' flag,
then makehistory will put a copy of all added lines
on its standard output.
-n To scan the spool directory without rebuilding the
dbz files, use the ``-n'' flag. If used with
``-u'', the server will not be paused while scan-
ning.
-r To just build the dbz files from an existing text
file, use the ``-r'' flag. The ``-i'' or ``-s''
flags can be useful if there are no valid dbz files
to use.
-T Makehistory needs to create a temporary file that
contains one line for each article it finds, which
can become very large. This file is created in the
/tmp directory. The ``TMPDIR'' environment vari-
able may be used to specify a different directory.
Alternatively, the ``-T'' flag may be used to spec-
ify a temporary directory. In addition, the
sort(1) that is invoked during the build writes
large temporary files (often to /var/tmp but see
your system manpages). If the ``-T'' flag is used,
then the flag and its value will be passed to sort.
On most systems this will change the temporary
directory that sort uses. if used, this flag and
its value will be passed on to the sort(1) command
that is invoked during the build.
EXAMPLES
A typical way to use this program is with the following
/bin/sh commands:
ctlinnd throttle "Rebuilding history file"
cd /var/lib/news
if makehistory -n -f history.n ; then
:
else
echo Error creating history file!
exit 1
fi
# The following line can be used to retain expired history
# It is not necessary for the history file to be sorted.
# awk 'NF==2 { print; }' <history >>history.n
# View history file for mistakes.
if makehistory -r -s `wc -l <history` -f history.n; then
mv history.n history
mv history.n.dir history.dir
mv history.n.pag history.pag
fi
ctlinnd go ''
BUGS AND LIMITATIONS
Makehistory does not handle symbolic links. If the news
spool area is split across multiple partitions, the fol-
lowing commands should probably be run before the database
is regenerated:
cd /var/spool/news
find . -type l -name '[1-9]*' -print | xargs -t rm
Make sure to run the command on all the appropriate parti-
tions!
HISTORY
Written by Rich $alz lt;rsalz@uunet.uu.net for InterNet-
News. This is revision 1.3, dated 1996/11/26.
SEE ALSO
active(5) ctlinnd(8) dbz(3) filechan(8) history(5)
innd(8) newsfeeds(5) makeactive(8) newsrequeue(8).