Provided by: inn2_2.7.3-1_amd64 bug

NAME

       expire - Usenet article and history expiration program

SYNOPSIS

       expire [-iNnptx] [-d dir] [-f file] [-g file] [-h file] [-r reason] [-s size] [-v level] [-w number] [-z
       file] [expire.ctl]

DESCRIPTION

       expire scans the history(5)-format text file pathdb/history and uses the information recorded in it to
       purge itself of old news articles.  Its behaviour depends on the setting of groupbaseexpiry in inn.conf.

       When groupbaseexpiry is false, article expiration is primarily done by expire based on the expiration
       rules in expire.ctl that match the storage class of each article.  The articles and the history entries
       are removed by expire, and then expireover does the additional cleanup of removing the overview database
       entries.  History entries of expired articles are removed only if they are older than the number of days
       specified in the "/remember/" line in expire.ctl.  Articles stored using a storage method that has self-
       expire functionality like CNFS are by default not affected by expire's primary behaviour (but see the -N
       flag to disable this).

       When groupbaseexpiry is true, article expiration is primarily done by expireover based on the expiration
       rules in expire.ctl that match each newsgroup.  Articles are removed from the news spool by expireover,
       and then expire does some additional cleanup to remove old history database entries.

       For articles in self-expiring storage methods when groupbaseexpiry is set to false in inn.conf and the -N
       flag is not given, or for all articles when groupbaseexpiry is set to true, expire.ctl is ignored except
       the "/remember/" line; expire then only probes to see if the article still exists, and purges the
       relevant history entries if appropriate.

       Regardless the setting of groupbaseexpiry, expireover should be run along with expire, usually via
       news.daily out of cron.

       Note that expire never purges articles which do not match any entry in expire.ctl.

       Also note that if groupbaseexpiry is true, the server needs an overview database in order to expire
       articles in storage backends that are not self-expiring.  If you do not plan to have an overview
       database, it would then be better to only use self-expiring backends like CNFS, as the history entries
       will still get cleaned up by expire when it detects that an article no longer exists in that backend.

OPTIONS

       -d dir
           If  the -d flag is used, then the new history file and database is created in the specified directory
           dir.  This is useful when the filesystem does not have sufficient space to hold both the old and  new
           history  files.   When  this  flag is used, expire leaves the server paused and creates a zero-length
           file named after the new history file,  with  an  extension  of  ".done"  to  indicate  that  it  has
           successfully  completed  the  expiration.  The calling script should install the new history file and
           unpause the server.  The -r flag should be used with this flag.

       -f file
           To specify an alternate history file, use the -f flag.  This flag is valid  when  used  with  the  -d
           flag, and the output will be written to the specified file.  The default without -f is "history".

       -g file
           If the -g flag is given, then a one-line summary equivalent to the output of -v 1, except preceded by
           the current time, will be appended to the specified file.

       -h file
           To  specify  an alternate input text history file, use the -h flag.  expire uses the old dbz database
           to determine the size of the new one.  (If the -d flag is not used, the output filename will  be  the
           same as the input filename with an extension of ".n".)

           The default without the -h flag is pathdb/history.

       -i  To ignore the old database, use the -i flag.

       -N  The  control  file  is  normally  ignored  for  articles  in  storage  methods which have self-expire
           functionality.  If the -N flag is used, expire still uses the control file for these articles.

           This parameter is only useful when groupbaseexpiry is set to false in inn.conf.

       -n  If innd is not running, use the -n flag and expire will not send the "pause" or "go" commands.   (For
           more  details  on  the commands, see ctlinnd(8)).  Note that expire only needs exclusive access for a
           very short time -- long enough to see if any new articles arrived since it first hit the end  of  the
           file, and to rename the new files to the working files.

       -p  expire makes its decisions on the time the article arrived, as found in the history file.  This means
           articles are often kept a little longer than with other expiration programs that base their decisions
           on the article's posting date.  To use the article's posting date, use the -p flag.

       -r reason
           expire  normally  sends  a "pause" command to the local innd daemon when it needs exclusive access to
           the history file, using the string "Expiring" as the reason.  To give a different reason, use the  -r
           flag.   The  process  ID will be appended to the reason.  When expire is finished and the new history
           file is ready, it sends a "go" command.  See also the -n flag.

       -s size
           expire determines the optimal size of the new history file from the size of the old one.  In case you
           want to force a specific size, use this flag to optimize the new history database  for  approximately
           size  key-value  pairs  (i.e.  lines  in history).  Accurately specifying the size will create a more
           efficient database.  (The size should be the estimated eventual number  of  articles,  typically  the
           size of the old history file, in lines.)

       -t  If  the -t flag is used, then expire will generate a list of the tokens that should be removed on its
           standard output, and the new history file will be left in history.n,  history.n.dir,  history.n.index
           and  history.n.hash.  This flag is useful for debugging when used with the -n flag.  Note that if the
           -f flag is used, then the name specified with that flag will be used instead of history.

       -v level
           The -v flag is used to increase the verbosity of the program, generating messages to standard output.
           The level should be a number, where higher numbers result in  more  output.   Level  one  will  print
           totals  of  the various actions done (not valid if a new history file is not written), level two will
           print a report on each individual file, while level five results in  multiple  lines  of  output  for
           every history line processed.

       -w number
           Use  the  -w  flag  to  "warp"  time  so that expire thinks it is running at some time other than the
           current time.  The value should be a signed floating point number indicating the number  of  days  to
           use as the offset.

       -x  If  the -x flag is used, then expire will not create any new history files.  This is most useful when
           combined with the -n and -t flags to see how different expiration policies would change the amount of
           disk space used.

       -z file
           If the -z flag is used, then articles are not removed, but their names are appended to the  specified
           file.   See  the description of delayrm in news.daily(8).  If a filename is specified, it is taken as
           the control file and parsed according to the rules in expire.ctl.  A single dash ("-") may be used to
           read the file from standard input.  If no file is specified, the file pathetc/expire.ctl is read.

HISTORY

       Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews.  Converted to POD by Julien Elie.

SEE ALSO

       ctlinnd(8),   expire.ctl(5),   expireover(8),   history(5),    inn.conf(5),    innd(8),    libinn_dbz(3),
       libinn_inndcomm(3), news.daily(8).

INN 2.7.3                                          2025-05-19                                          EXPIRE(8)