MAKEHISTORY(8)

MAKEHISTORY(8)

MAKEDEV Home Page System Administration Index makemap


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

MAKEDEV Home Page System Administration Index makemap