1EXPIRE.CTL(5)             InterNetNews Documentation             EXPIRE.CTL(5)
2
3
4

NAME

6       expire.ctl - Configuration file for article expiration
7

DESCRIPTION

9       The file pathetc/expire.ctl is the default configuration file for
10       expire and expireover, which read it at start-up.  It serves two
11       purposes:  it defines how long history entries for expired or rejected
12       articles are remembered, and it determines how long articles stored on
13       the server are retained.
14
15       Normally, if all of the storage methods used by the server are self-
16       expiring (such as CNFS), all lines except the "/remember/" setting
17       (described below) are ignored.  This can be changed with the -N option
18       to expire or expireover.
19
20       Blank lines and lines beginning with a number sign ("#") are ignored.
21       All other lines should be in one of two formats.  The order of the file
22       is significant, and the last matching entry will be used.
23
24       The first format specifies how long to keep history entries for
25       articles that aren't present in the news spool.  These are articles
26       that have either already expired, or articles which the server rejected
27       (when remembertrash is set to true in inn.conf).  There should be one
28       and only one line in this format, which looks like:
29
30           /remember/:<days>
31
32       where <days> is a decimal number that specifies the minimum number of
33       days a history record for a given message-ID is retained (from its
34       original posting time), regardless of whether the article is present in
35       the spool.  (History entries for articles still present in the spool
36       are always retained.)  Setting it to 0 means history records will be
37       retained forever.
38
39       The primary reason to retain a record of old articles is in case a peer
40       offers old articles that were previously accepted but have already
41       expired.  Without a history record for such articles, the server would
42       accept the article again and readers would see duplicate articles.
43       Articles older than a certain number of days won't be accepted by the
44       server at all (see artcutoff in inn.conf(5) and the -c flag in
45       innd(8)), and this setting should probably match that time period to
46       ensure that the server never accepts duplicates.  As the default value
47       for artcutoff is 10 days, it means that "/remember/" should be set to
48       11 days in order to take into account articles whose posting date is
49       one day into the future.
50
51       Most of the lines in this file will be in the second format, which
52       consists of either four or five colon-separated fields:
53
54           <pattern>:<flag>:<min>:<default>:<max>
55
56       if groupbaseexpiry is true in inn.conf (the default), and otherwise:
57
58           <classnum>:<min>:<default>:<max>
59
60       All lines must be in the correct format given the current setting of
61       groupbaseexpiry, and therefore the two formats cannot co-exist in the
62       same file.
63
64       Normally, a rule matches a newsgroup through the combination of the
65       <pattern> and <flag> fields.  <pattern> is a uwildmat-style pattern,
66       specifying the newsgroups to which the line is applied.  Note that the
67       last matching entry will be used, so general patterns (such as defaults
68       for all groups where <pattern> is "*") should appear at the beginning
69       of the file before more specific settings.
70
71       The <flag> field can be used to further limit newsgroups to which the
72       line applies, and should be chosen from the following set:
73
74           M   Only moderated groups
75           U   Only unmoderated groups
76           A   All groups
77           X   Remove the article from all groups it appears in
78
79       One of "M", "U", or "A" must be specified.  "X" should be used in
80       combination with one of the other letters, not by itself.
81
82       An expiration policy is applied to every article in a newsgroup it
83       matches.  There is no way to set an expiration policy for articles
84       crossposted to groups you don't carry that's different than other
85       articles in the same group.  Normally, articles are not completely
86       deleted until they expire out of every group to which they were posted,
87       but if an article is expired following a rule where <flag> contains
88       "X", it is deleted out of all newsgroups to which it was posted
89       immediately.
90
91       If groupbaseexpiry is instead set to false, there is no <pattern> and
92       <flag> field and the above does not apply.  Instead, there is a single
93       <classnum> field, which is either a number matching the storage class
94       number specified in storage.conf or "*" to specify a default for all
95       storage classes.  All articles stored in a storage class will be
96       expired following the instructions in the line with a matching
97       <classnum>, and when articles are expired, they're always removed from
98       all groups to which they were posted.
99
100       The remaining three fields are the same in either format, and are used
101       to determine how long an article should be kept from its original
102       arrival time (unless the -p flag is passed to expire(8) or
103       expireover(8), in which case its original posting time is used).  Each
104       field should be either a decimal number of days (fractions like 8.5 are
105       allowed, but remember that articles are only removed when expire or
106       expireover is run, normally once a day by news.daily) or the word
107       "never".
108
109       The middle field, <default>, will be used as the expiration period for
110       most articles.  The other two fields, <min> and <max>, only come into
111       play if the article requests a particular expiration date with an
112       Expires: header.  Articles with an Expires: header will be expired at
113       the date given in that header, subject to the constraints that they
114       will be retained at least <min> days and no longer than <max> days.
115
116       If <min> is set to "never", no article matching that line will ever be
117       expired.  If <default> is set to "never", no article matching that line
118       without an explicit Expires: header will ever be expired.  If <max> is
119       set to "never", Expires: headers will be honored no matter how far into
120       the future they are.
121
122       One should think of the fields as a lower bound, the default, and an
123       upper bound.  Since most articles do not have an Expires: header, the
124       second field is the most important and most commonly applied.
125
126       Articles that do not match any expiration rule will not be expired, but
127       this is considered an error and will result in a warning.  There should
128       always be a default line (a line with a <pattern> of "*" and <flag> of
129       "A", or a line with a <classnum> of "*"), which can explicitly state
130       that articles should never expire by default if that's the desired
131       configuration.  The default line should generally be the first line of
132       the file (except for "/remember/") so that other expiration rules can
133       override it.
134
135       It is often useful to honor the Expires: header in articles, especially
136       those in moderated groups.  To do this, set <min> to zero, <default> to
137       whatever normal expiration you wish, and <max> to "never" or some large
138       number, like 365 days for a maximum article life of a year.
139
140       To ignore any Expires: header, set all three fields to the same value.
141

EXAMPLES

143       When groupbaseexpiry is true (the default):
144
145           # Keep expired article history for 11 days, matching artcutoff plus one.
146           /remember/:11
147
148           # Most articles stay for two weeks, ignoring Expires: headers.
149           *:A:14:14:14
150
151           # Accept Expires: headers in moderated groups for up to a year and
152           # retain moderated groups for a bit longer.
153           *:M:1:30:365
154
155           # Keep local groups for a long time and local project groups forever.
156           example.*:A:1:90:90
157           example.project.*:A:never:never:never
158
159       When groupbaseexpiry is false, for class-based expiration:
160
161           # Keep expired article history for 11 days, matching artcutoff plus one.
162           /remember/:11
163
164           # Set a default expiration of seven days and honour Expires: headers
165           # within reasonable limits.
166           *:1:7:35
167
168           # Class 0 is retained for two weeks and honor Expires: headers
169           # within reasonable limits.
170           0:1:14:65
171

HISTORY

173       Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews.  Converted
174       to POD by Russ Allbery <eagle@eyrie.org>.
175

SEE ALSO

177       expire(8), expireover(8), inn.conf(5), innd(8), libinn_uwildmat(3),
178       news.daily(8), storage.conf(5).
179
180
181
182INN 2.6.5                         2022-02-18                     EXPIRE.CTL(5)
Impressum