Provided by: inn_1.7.2q-44.1ubuntu2_i386 bug


       makehistory - tools to recover Usenet history database.


       makehistory [ -A oldtmp ] [ -a active ] [ -b ] [ -f filename ] [ -i ] [
       -n ] [ -o ] [ -r ] [ -s size ] [ -T tmpdir ] [ -u [ -v ] ]


       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

       After  the  text  file  is  written,  makehistory  will  build  the dbz


       -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 written 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  overwritten.  If the old database
              exists, makehistory will use it to determine the size of the new

       -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, typically the  size  of
              the  old  file.)   For  more  information, 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 system  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

       -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 scanning.

       -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   /var/spool/news/in.coming/tmp
              directory.   The  ``TMPDIR'' environment variable may be used to
              specify a different directory.  Alternatively, the  ``-T''  flag
              may  be used to specify 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


       A typical way to  use  this  program  is  with  the  following  /bin/sh

              ctlinnd throttle "Rebuilding history file"
              cd /var/lib/news
              if makehistory -n -f history.n ; then
                  echo Error creating history file!
                  exit 1
              # 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
              ctlinnd go ''


       Makehistory  does not handle symbolic links.  If the news spool area is
       split  across  multiple  partitions,  the  following  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 partitions!


       Written  by  Rich  $alz <> for InterNetNews.  This is
       revision 1.3, dated 1996/11/26.


       active(5),  ctlinnd(8),  dbz(3),  filechan(8),   history(5),   innd(8),
       newsfeeds(5), makeactive(8), newsrequeue(8).