DESCRIPTION

       The file pathetc/expire.ctl is the default configuration file for
       expire and expireover, which read it at start-up.  It serves two pur-
       poses:  it defines how long history entries for expired or rejected
       articles are remembered, and it determines how long articles stored on
       the server are retained.

       Normally, if all of the storage methods used by the server are self-
       expiring (such as CNFS), all lines except the "/remember/" setting
       (described below) are ignored.  This can be changed with the -N option
       to expire or expireover.

       Black lines and lines beginning with a number sign ("#") are ignored.
       All other lines should be in one of two formats.  The order of the file
       is significant, and the last matching entry will be used.

       The first format specifies how long to keep history entries for arti-
       cles that aren't present in the news spool.  These are articles that
       have either already expired, or articles which the server rejected
       (when remembertrash is set to true in inn.conf).  There should be one
       and only one line in this format, which looks like:

           /remember/:<days>

       where <days> is a decimal number that specifies the minimum number of
       days a history record for a given message ID is retained, regardless of
       whether the article is present in the spool.  (History entries for
       articles still present in the spool are always retained.)

       The primary reason to retain a record of old articles is in case a peer
       offers old articles that were previously accepted but have already
       expired.  Without a history record for such articles, the server would
       accept the article again and readers would see duplicate articles.
       Articles older than a certain number of days won't be accepted by the
       server at all (see artcutoff in inn.conf(5) and the -c flag in
       innd(8)), and this setting should probably match that time period (10
       days by default) to ensure that the server never accepts duplicates.

       Most of the lines in this file will be in the second format, which con-
       sists of either four or five colon-separated fields:

           <pattern>:<flag>:<min>:<default>:<max>

       if groupbaseexpiry is true in inn.conf (the default), and otherwise:

           <classnum>:<min>:<default>:<max>

       All lines must be in the correct format given the current setting of
       groupbaseexpiry, and therefore the two formats cannot co-exist in the
       same file.

       Normally, a rule matches a newsgroup through the combination of the
       One of M, U, or A must be specified.  X should be used in combination
       with one of the other letters, not by itself.

       An expiration policy is applied to every article in a newsgroup it
       matches.  There is no way to set an expiration policy for articles
       crossposted to groups you don't carry that's different than other arti-
       cles in the same group.  Normally, articles are not completely deleted
       until they expire out of every group to which they were posted, but if
       an article is expired following a rule where <flag> contains X, it is
       deleted out of all newsgroups to which it was posted immediately.

       If groupbaseexpiry is instead set to false, there is no <pattern> and
       <flag> field and the above does not apply.  Instead, there is a single
       <classnum> field, which is either a number matching the storage class
       number specified in storage.conf or "*" to specify a default for all
       storage classes.  All articles stored in a storage class will be
       expired following the instructions in the line with a matching <class-
       num>, and when articles are expired, they're always removed from all
       groups to which they were posted.

       The remaining three fields are the same in either format, and are used
       to determine how long an article should be kept.  Each field should be
       either a decimal number of days (fractions like 8.5 are allowed, but
       remember that articles are only removed when expire or expireover is
       run, normally once a day by news.daily) or the word "never".

       The middle field, <default>, will be used as the expiration period for
       most articles.  The other two fields, <min> and <max>, only come into
       play if the article requests a particular expiration date with an
       Expires header.  Articles with an Expires header will be expired at the
       date given in that header, subject to the constraints that they will be
       retained at least <min> days and no longer than <max> days.

       If <min> is set to "never", no article matching that line will ever be
       expired.  If <default> is set to "never", no article matching that line
       without an explicit Expires header will ever be expired.  If <max> is
       set to "never", Expires headers will be honored no matter how far into
       the future they are.

       One should think of the fields as a lower bound, the default, and an
       upper bound.  Since most articles do not have an Expires header, the
       second field is the most important and most commonly applied.

       Articles that do not match any expiration rule will not be expired, but
       this is considered an error and will result in a warning.  There should
       always be a default line (a line with a <pattern> of "*" and <flag> of
       "A", or a line with a <classnum> of "*"), which can explicitly state
       that articles should never expire by default if that's the desired con-
       figuration.  The default line should generally be the first line of the
       file (except for "/remember/") so that other expiration rules can over-
       ride it.

           *:A:14:14:14

           # Accept Expires headers in moderated groups for up to a year and
           # retain moderated groups for a bit longer.
           *:M:1:30:365

           # Keep local groups for a long time and local project groups forever.
           example.*:A:90:90:90
           example.project.*:A:never:never:never

       When groupbaseexpiry is false, for class-based expiration:

           # Keep expired article history for 10 days, matching artcutoff.
           /remember/:10

           # Set a default expiration of seven days.
           *:7:7:7

           # Class 0 is retained for two weeks.
           0:14:14:14


HISTORY

       Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews.  Converted
       to POD by Russ Allbery <rra@stanford.edu>.

       $Id: expire.ctl.5 7207 2005-04-11 18:18:40Z rra $


SEE ALSO

       expire(8), expireover(8), inn.conf(5), innd(8), news.daily(8), stor-
       age.conf(5), uwildmat(3)



INN 2.4.3                         2005-04-11                     EXPIRE.CTL(5)

Man(1) output converted with man2html