Provided by: inn_1.7.2q-46build3_amd64 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 it.

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


       -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

       -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 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, 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 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 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 build.


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


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