EXPIRE.CTL(5)EXPIRE.CTL(5)NAME
expire.ctl - control file for Usenet article expiration
DESCRIPTION
The file <pathetc in inn.conf>/expire.ctl is the default
control file for the expire(8) program, which reads it at
start-up. It serves two purposes: it defines how long
history entries for expired or rejected articles are
retained, and it determines how long articles not stored
in a self-expiring storage method are retained. If all of
the storage methods used by the server are self-expiring
(such as CNFS), only the /remember/ setting described
below is necessary or used.
Blank lines and lines beginning with a number sign (``#'')
are ignored. All other lines should be in one of two for-
mats.
The first format specifies how long to keep history
entries for articles that aren't present in the news
spool. These are articles which have either already
expired out of all newsgroups or which the server rejected
(and ``remembertrash'' was set to true in inn.conf(5)).
There should only be one line in this format, which looks
like:
/remember/:days
where days is a floating-point number that specifies the
minimum number of days a history record of a given message
ID is retained, regardless of whether the article has
expired. (History entries are always retained at least
until an article fully expires.)
The reason to retain a record of an old articles is to
handle the case where a peer offers old articles that were
previously accepted and then expired. Without a setting
like this, 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 the ``-c'' flag of innd(8)), and this setting
should probably match that time period (14 days by
default) to ensure the server never accepts duplicates.
This setting does not affect article expirations.
Most of the lines in this file will be in the second for-
mat, five colon-separated fields as follows:
pattern:modflag:keep:default:purge
The pattern field is a list of wildmat(3)-style patterns,
separated by commas. This field specifies the newsgroups
to which the line is applied. Note that the file is
interpreted in order and the last line that matches will
be used, so general patterns (like a single asterisk to
set the defaults) should appear at the beginning of the
file, before more specific settings.
1
EXPIRE.CTL(5)EXPIRE.CTL(5)
The modflag field can be used to further limit newsgroups
to which the line applies, and should be chosen from the
following set:
M Only moderated groups
U Only unmoderated groups
A All groups
X Removes the article from all groups that it appears in
(The X flag is special; normally articles are not com-
pletely deleted until they expire out of every group they
were posted to, but if an article is expired by a line
with an X, it is deleted out of all newsgroups it was
posted to immediately.)
The next three fields are used to determine how long an
article should be kept. Each field should be either a
number of days (fractions like ``8.5'' are allowed) or the
word ``never.'' The most common use is to specify the
default value for how long an article should be kept. The
first and third fields -- keep and purge -- specify the
boundaries within which an Expires header will be honored.
They are ignored if an article has no Expires header. (In
other words, if an article has an Expires header, and the
time at which the header says it should expire is sooner
than the default field, the Expires header is be honored
instead. Similarly, if the Expires header specifies a
time longer than the default field, it is honored instead.
But articles are expired no faster than the time set with
keep and kept no longer than the time specified with purge
regardless of Expires headers). One should think of the
fields as ``lower-bound default upper-bound.'' Since most
articles do not have explicit expiration dates, the second
field tends to be the most important and most commonly
applied one.
The keep field specifies how many days an article should
be kept before it will be removed. No article in the
matching newsgroups will be removed if it has been filed
for less then keep days, regardless of any expiration
date. If this field is the word ``never,'' no article in
the matching newsgroups will ever be expired.
The default field specifies how long to keep an article if
no Expires header is present. If this field is the word
``never'' then articles without explicit expiration dates
will never be expired.
The purge field specifies the upper bound on how long an
article can be kept. No article will be kept longer then
the number of days specified by this field. All articles
will be removed after then have been kept for purge days.
If purge is the word ``never'' then the article will never
be deleted.
If you have turned on the storage manager with the
2
EXPIRE.CTL(5)EXPIRE.CTL(5)
``storageapi'' in inn.conf(5) option and you don't the use
``-c'' option with expire, or if overview data for the
article is not created, then you will need to use a
slightly different format for specifying expiration times
for storage classes:
classnum:keep:default:purge
Where classnum is the number that you specified in stor-
age.conf(5). The rest of the fields are identical to the
5 field format. If the line for classnum is not defined,
keep, default and purge are assumed to be all ``0''.
It is often useful to honor the expiration headers in
articles, especially those in moderated groups. To do
this, set keep to zero, default to whatever value you
wish, and purge to never (or alternately set purge to some
large number, like 365 days for a maximum article life of
a year). To ignore any Expires header, set all three
fields to the same value.
There must be exactly one line with a pattern of ``*'' and
a modflags of ``A'' -- this matches all groups and is used
to set the expiration default. It should be the first
expiration line.
EXAMPLES
## How long to keep expired history
/remember/:5
## Most things stay for two weeks
*:A:14:14:14
## Believe expiration dates in moderated groups, up to six weeks
*:M:1:30:42
## Keep local stuff for a long time
foo.*:A:30:30:30
HISTORY
Written by Rich $alz <rsalz@uunet.uu.net> for InterNet-
News. This is revision 1.1.2.1, dated 1999/06/12.
SEE ALSOexpire(8), inn.conf(5), storage.conf(5), wildmat(3).
3