PRUNEHISTORY(8) | System Manager's Manual | PRUNEHISTORY(8) |
prunehistory - remove file names from Usenet history file
prunehistory [ -f filename ] [ -p ] [ input ]
Prunehistory modifies the history(5) text file to ``remove'' a set of filenames from it. The filenames are removed by overwriting them with spaces, so that the size and position of any following entries does not change.
Prunehistory reads the named input file, or standard input if no file is given. The input is taken as a set of lines. Blank lines and lines starting with a number sign (``#'') are ignored. All other lines are should consist of a Message-ID followed by zero or more filenames.
The Messge-ID is used as the dbz(3) key to get an offset into the text file. If no filenames are mentioned on the input line, then all filenames in the text are ``removed.'' If any filenames are mentioned, they are converted into the history file notation. If they appear in the line for the specified Message-ID then they are removed.
Since innd(8) only appends to the text file, prunehistory does not need to have any interaction with it.
It is a good idea to delete purged entries and rebuild the dbz database every so often by using a script like the following:
ctlinnd throttle "Rebuilding history database" cd /var/lib/news awk 'NF > 2 { printf "%s\t%s\t%s", $1, $2, $3; for (i = 4; i <= NF; i++) printf " %s", $i; print "\n"; }' <history >history.n if makehistory -r -f history.n ; then
mv history.n history
mv history.n.pag history.pag
mv history.n.dir history.dir else
echo 'Problem rebuilding history; old file not replaced' fi ctlinnd go "Rebuilding history database"
Note that this keeps no record of expired articles.
Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews. This is revision 1.9, dated 1996/10/29.