1EXPIRE.CTL(5) InterNetNews Documentation EXPIRE.CTL(5)
2
3
4
6 expire.ctl - Configuration file for article expiration
7
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 pur‐
11 poses: 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 Black 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 arti‐
25 cles that aren't present in the news spool. These are articles that
26 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, regardless of
34 whether the article is present in the spool. (History entries for
35 articles still present in the spool are always retained.)
36
37 The primary reason to retain a record of old articles is in case a peer
38 offers old articles that were previously accepted but have already
39 expired. Without a history record for such articles, the server would
40 accept the article again and readers would see duplicate articles.
41 Articles older than a certain number of days won't be accepted by the
42 server at all (see artcutoff in inn.conf(5) and the -c flag in
43 innd(8)), and this setting should probably match that time period (10
44 days by default) to ensure that the server never accepts duplicates.
45
46 Most of the lines in this file will be in the second format, which con‐
47 sists of either four or five colon-separated fields:
48
49 <pattern>:<flag>:<min>:<default>:<max>
50
51 if groupbaseexpiry is true in inn.conf (the default), and otherwise:
52
53 <classnum>:<min>:<default>:<max>
54
55 All lines must be in the correct format given the current setting of
56 groupbaseexpiry, and therefore the two formats cannot co-exist in the
57 same file.
58
59 Normally, a rule matches a newsgroup through the combination of the
60 <pattern> and <flag> fields. <pattern> is a uwildmat(3)-style pattern,
61 specifying the newsgroups to which the line is applied. Note that the
62 last matching entry will be used, so general patterns (such as defaults
63 for all groups where <pattern> is "*") should appear at the beginning
64 of the file before more specific settings.
65
66 The <flag> field can be used to further limit newsgroups to which the
67 line applies, and should be chosen from the following set:
68
69 M Only moderated groups
70 U Only unmoderated groups
71 A All groups
72 X Remove the article from all groups it appears in
73
74 One of M, U, or A must be specified. X should be used in combination
75 with one of the other letters, not by itself.
76
77 An expiration policy is applied to every article in a newsgroup it
78 matches. There is no way to set an expiration policy for articles
79 crossposted to groups you don't carry that's different than other arti‐
80 cles in the same group. Normally, articles are not completely deleted
81 until they expire out of every group to which they were posted, but if
82 an article is expired following a rule where <flag> contains X, it is
83 deleted out of all newsgroups to which it was posted immediately.
84
85 If groupbaseexpiry is instead set to false, there is no <pattern> and
86 <flag> field and the above does not apply. Instead, there is a single
87 <classnum> field, which is either a number matching the storage class
88 number specified in storage.conf or "*" to specify a default for all
89 storage classes. All articles stored in a storage class will be
90 expired following the instructions in the line with a matching <class‐
91 num>, and when articles are expired, they're always removed from all
92 groups to which they were posted.
93
94 The remaining three fields are the same in either format, and are used
95 to determine how long an article should be kept. Each field should be
96 either a decimal number of days (fractions like 8.5 are allowed, but
97 remember that articles are only removed when expire or expireover is
98 run, normally once a day by news.daily) or the word "never".
99
100 The middle field, <default>, will be used as the expiration period for
101 most articles. The other two fields, <min> and <max>, only come into
102 play if the article requests a particular expiration date with an
103 Expires header. Articles with an Expires header will be expired at the
104 date given in that header, subject to the constraints that they will be
105 retained at least <min> days and no longer than <max> days.
106
107 If <min> is set to "never", no article matching that line will ever be
108 expired. If <default> is set to "never", no article matching that line
109 without an explicit Expires header will ever be expired. If <max> is
110 set to "never", Expires headers will be honored no matter how far into
111 the future they are.
112
113 One should think of the fields as a lower bound, the default, and an
114 upper bound. Since most articles do not have an Expires header, the
115 second field is the most important and most commonly applied.
116
117 Articles that do not match any expiration rule will not be expired, but
118 this is considered an error and will result in a warning. There should
119 always be a default line (a line with a <pattern> of "*" and <flag> of
120 "A", or a line with a <classnum> of "*"), which can explicitly state
121 that articles should never expire by default if that's the desired con‐
122 figuration. The default line should generally be the first line of the
123 file (except for "/remember/") so that other expiration rules can over‐
124 ride it.
125
126 It is often useful to honor the Expires header in articles, especially
127 those in moderated groups. To do this, set <min> to zero, <default> to
128 whatever normal expiration you wish, and <max> to "never" or some large
129 number, like 365 days for a maximum article life of a year.
130
131 To ignore any Expires header, set all three fields to the same value.
132
134 When groupbaseexpiry is true (the default):
135
136 # Keep expired article history for 10 days, matching artcutoff.
137 /remember/:10
138
139 # Most articles stay for two weeks, ignoring Expires.
140 *:A:14:14:14
141
142 # Accept Expires headers in moderated groups for up to a year and
143 # retain moderated groups for a bit longer.
144 *:M:1:30:365
145
146 # Keep local groups for a long time and local project groups forever.
147 example.*:A:90:90:90
148 example.project.*:A:never:never:never
149
150 When groupbaseexpiry is false, for class-based expiration:
151
152 # Keep expired article history for 10 days, matching artcutoff.
153 /remember/:10
154
155 # Set a default expiration of seven days.
156 *:7:7:7
157
158 # Class 0 is retained for two weeks.
159 0:14:14:14
160
162 Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews. Converted
163 to POD by Russ Allbery <rra@stanford.edu>.
164
165 $Id: expire.ctl.5 7207 2005-04-11 18:18:40Z rra $
166
168 expire(8), expireover(8), inn.conf(5), innd(8), news.daily(8), stor‐
169 age.conf(5), uwildmat(3)
170
171
172
173INN 2.4.3 2005-04-11 EXPIRE.CTL(5)