Provided by: inn_1.7.2q-40build2_amd64 bug


       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

       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.


       -p     Prunehistory will normally complain about lines that  do  not  follow  the  correct
              format.   If  the  ``-p''  flag  is  used, then the program will silently print any
              invalid lines on its standard output.  (Blank lines  and  comment  lines  are  also
              passed  through.)   This  can  be  useful when prunehistory is used as a filter for
              other programs such as reap.

       -f     The default name of  the  history  file  is  /var/lib/news/history;  to  specify  a
              different name, use the ``-f'' flag.


       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
                  echo 'Problem rebuilding history; old file not replaced'
              ctlinnd go "Rebuilding history database"

       Note that this keeps no record of expired articles.


       Written by Rich $alz <> for InterNetNews.  This is revision  1.9,  dated


       dbz(3), history(5), innd(8).