chiark / gitweb /
Commit 2.4.5-5 as unpacked
[inn-innduct.git] / doc / man / expireover.8
1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sh \" Subsection heading
6 .br
7 .if t .Sp
8 .ne 5
9 .PP
10 \fB\\$1\fR
11 .PP
12 ..
13 .de Sp \" Vertical space (when we can't use .PP)
14 .if t .sp .5v
15 .if n .sp
16 ..
17 .de Vb \" Begin verbatim text
18 .ft CW
19 .nf
20 .ne \\$1
21 ..
22 .de Ve \" End verbatim text
23 .ft R
24 .fi
25 ..
26 .\" Set up some character translations and predefined strings.  \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
29 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
30 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
31 .\" nothing in troff, for use with C<>.
32 .tr \(*W-
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34 .ie n \{\
35 .    ds -- \(*W-
36 .    ds PI pi
37 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
39 .    ds L" ""
40 .    ds R" ""
41 .    ds C` ""
42 .    ds C' ""
43 'br\}
44 .el\{\
45 .    ds -- \|\(em\|
46 .    ds PI \(*p
47 .    ds L" ``
48 .    ds R" ''
49 'br\}
50 .\"
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53 .\" entries marked with X<> in POD.  Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
55 .if \nF \{\
56 .    de IX
57 .    tm Index:\\$1\t\\n%\t"\\$2"
58 ..
59 .    nr % 0
60 .    rr F
61 .\}
62 .\"
63 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
64 .\" way too many mistakes in technical documents.
65 .hy 0
66 .if n .na
67 .\"
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
70 .    \" fudge factors for nroff and troff
71 .if n \{\
72 .    ds #H 0
73 .    ds #V .8m
74 .    ds #F .3m
75 .    ds #[ \f1
76 .    ds #] \fP
77 .\}
78 .if t \{\
79 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 .    ds #V .6m
81 .    ds #F 0
82 .    ds #[ \&
83 .    ds #] \&
84 .\}
85 .    \" simple accents for nroff and troff
86 .if n \{\
87 .    ds ' \&
88 .    ds ` \&
89 .    ds ^ \&
90 .    ds , \&
91 .    ds ~ ~
92 .    ds /
93 .\}
94 .if t \{\
95 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101 .\}
102 .    \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 .    \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 .    \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
117 \{\
118 .    ds : e
119 .    ds 8 ss
120 .    ds o a
121 .    ds d- d\h'-1'\(ga
122 .    ds D- D\h'-1'\(hy
123 .    ds th \o'bp'
124 .    ds Th \o'LP'
125 .    ds ae ae
126 .    ds Ae AE
127 .\}
128 .rm #[ #] #H #V #F C
129 .\" ========================================================================
130 .\"
131 .IX Title "EXPIREOVER 8"
132 .TH EXPIREOVER 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation"
133 .SH "NAME"
134 expireover \- Expire entries from the news overview database
135 .SH "SYNOPSIS"
136 .IX Header "SYNOPSIS"
137 \&\fBexpireover\fR [\fB\-ekNpqs\fR] [\fB\-f\fR \fIfile\fR] [\fB\-w\fR \fIoffset\fR]
138 [\fB\-z\fR \fIrmfile\fR] [\fB\-Z\fR \fIlowmarkfile\fR]
139 .SH "DESCRIPTION"
140 .IX Header "DESCRIPTION"
141 \&\fBexpireover\fR expires old entries from the news overview database.  It
142 reads in a list of newsgroups (by default from \fIpathdb\fR/active, but a
143 different file can be specified with the \fB\-f\fR option) and then removes
144 from the overview database mentions of any articles that no longer exist
145 in the news spool.
146 .PP
147 If \fIgroupbaseexpiry\fR in \fIinn.conf\fR is true, \fBexpireover\fR also removes
148 old articles from the news spool according to the expiration rules in
149 \&\fIexpire.ctl\fR.  Otherwise it only removes overview entries for articles
150 that have already been removed by some other process, and \fB\-e\fR, \fB\-k\fR,
151 \&\fB\-N\fR, \fB\-p\fR, \fB\-q\fR, \fB\-w\fR, and \fB\-z\fR are all ignored.
152 .PP
153 When \fIgroupbaseexpiry\fR is set, the default behavior of \fBexpireover\fR is
154 to remove the article from the spool once it expires out of all of the
155 newsgroups to which it was crossposted.  The article is, however, removed
156 from the overview database of each newsgroup as soon as it expires out of
157 that individual newsgroup.  The effect is that an article crossposted to
158 several groups will be removed from the overview database from each group
159 one-by-one as its age passes the expiration threshold for that group as
160 set in \fIexpire.ctl\fR, and then when it expires out of the last newsgroup,
161 it will be deleted from the news spool.
162 .PP
163 Articles that are stored in self-expiring storage backends such as \s-1CNFS\s0
164 are normally treated differently and not expired until they expire out of
165 the backend regardless of \fIexpire.ctl\fR.  See \fB\-N\fR, however.
166 .PP
167 By default, \fBexpireover\fR purges all overview information for newsgroups
168 that have been removed from the server; this behavior is suppressed if
169 \&\fB\-f\fR is given.
170 .SH "OPTIONS"
171 .IX Header "OPTIONS"
172 .IP "\fB\-e\fR" 4
173 .IX Item "-e"
174 Remove articles from the news spool and all overview databases as soon as
175 they expire out of any newsgroup to which they are posted, rather than
176 retain them until they expire out of all newsgroups.  \fB\-e\fR and \fB\-k\fR
177 cannot be used at the same time.  This flag is ignored if
178 \&\fIgroupbaseexpiry\fR is false.
179 .IP "\fB\-f\fR \fIfile\fR" 4
180 .IX Item "-f file"
181 Use \fIfile\fR as the newsgroup list instead of \fIpathdb\fR/active.  \fIfile\fR
182 can be \f(CW\*(C`\-\*(C'\fR to indicate standard input.  Using this flag suppresses the
183 normal purge of all overview information from newsgroups that have been
184 removed from the server.
185 .IP "\fB\-k\fR" 4
186 .IX Item "-k"
187 Retain all overview information for an article, as well as the article
188 itself, until it expires out of all newsgroups to which it was posted.
189 This can cause articles to stick around in a newsgroup for longer than the
190 \&\fIexpire.ctl\fR rules indicate, when they're crossposted.  \fB\-e\fR and \fB\-k\fR
191 cannot be used at the same time.  This flag is ignored if
192 \&\fIgroupbaseexpiry\fR is false.
193 .IP "\fB\-N\fR" 4
194 .IX Item "-N"
195 Apply \fIexpire.ctl\fR rules to expire articles even from storage methods
196 that have self-expire functionality.  This may remove articles from
197 self-expiring storage methods before the articles \*(L"naturally\*(R" expire.
198 This flag is ignored if \fIgroupbaseexpiry\fR is false.
199 .IP "\fB\-p\fR" 4
200 .IX Item "-p"
201 By default, \fBexpireover\fR bases decisions on whether to remove an article
202 on the arrival time on the server.  This means that articles may be kept a
203 little longer than if the decision were based on the article's posting
204 date.  If this option is given, expiration decisions are based on the
205 article posting date instead.  This flag is ignored if \fIgroupbaseexpiry\fR
206 is false.
207 .IP "\fB\-q\fR" 4
208 .IX Item "-q"
209 \&\fBexpireover\fR normally prints statistics at the end of the expiration
210 process.  \fB\-q\fR suppresses this report.  This flag is ignored if
211 \&\fIgroupbaseexpiry\fR is false.
212 .IP "\fB\-s\fR" 4
213 .IX Item "-s"
214 \&\fBexpireover\fR normally only checks the existence of articles in the news
215 spool if querying the storage method for that article to see if it still
216 exists is considered \*(L"inexpensive.\*(R"  To always check the existence of all
217 articles regardless of how resource-intensive this may be, use the \fB\-s\fR
218 flag.  See \fIstorage.conf\fR\|(5) for more information about this metric.
219 .IP "\fB\-w\fR \fIoffset\fR" 4
220 .IX Item "-w offset"
221 \&\*(L"Warps\*(R" time so that \fBexpireover\fR thinks that it's running at some time
222 other than the current time.  This is occasionally useful to force groups
223 to be expired or not expired without changing \fIexpire.ctl\fR for the expire
224 run.  \fIoffset\fR should be a signed floating point number specifying the
225 number of days difference from the current time to use as \*(L"now.\*(R"  This
226 flag is ignored if \fIgroupbaseexpiry\fR is false.
227 .IP "\fB\-z\fR \fIrmfile\fR" 4
228 .IX Item "-z rmfile"
229 Don't remove articles immediately but instead write the path to the
230 article or the token of the article to \fIrmfile\fR, which is suitable input
231 for \fIfastrm\fR\|(1).  This can substantially speed up deletion of expired
232 articles for those storage methods where each article is a single file
233 (such as tradspool and timehash).  See the description of \fIdelayrm\fR in
234 \&\fInews.daily\fR\|(8) for more details.  This flag is ignored if
235 \&\fIgroupbaseexpiry\fR is false.
236 .IP "\fB\-Z\fR \fIlowmarkfile\fR" 4
237 .IX Item "-Z lowmarkfile"
238 Write the lowest article numbers for each newsgroup as it's expired to the
239 specified file.  This file is then suitable for \f(CW\*(C`ctlinnd lowmark\*(C'\fR.  See
240 \&\fIctlinnd\fR\|(8) for more information.
241 .SH "EXAMPLES"
242 .IX Header "EXAMPLES"
243 Normally \fBexpireover\fR is invoked from \fInews.daily\fR\|(8), which handles such
244 things as processing the \fIrmfile\fR and \fIlowmarkfile\fR if necessary.
245 Sometimes it's convenient to manually expire a particular newsgroup,
246 however.  This can be done with a command like:
247 .PP
248 .Vb 2
249 \&    echo example.test | expireover \-f \- \-Z /usr/local/news/tmp/lowmark
250 \&    ctlinnd lowmark /usr/local/news/tmp/lowmark
251 .Ve
252 .PP
253 This can be particularly useful if a lot of articles in a particular group
254 have expired but the overview information is still present, causing some
255 clients to see a lot of \*(L"this article may have been cancelled\*(R" messages
256 when they first enter the newsgroup.
257 .SH "HISTORY"
258 .IX Header "HISTORY"
259 Written by Rob Robertson <rob@violet.berkeley.edu> and Rich \f(CW$alz\fR
260 <rsalz@uunet.uu.net> (with help from Dave Lawrence <tale@uunet.uu.net>)
261 for InterNetNews.
262 .PP
263 $Id: expireover.8 7880 2008-06-16 20:37:13Z iulius $
264 .SH "SEE ALSO"
265 .IX Header "SEE ALSO"
266 \&\fIactive\fR\|(5), \fIctlinnd\fR\|(8), \fIexpire\fR\|(8), \fIexpire.ctl\fR\|(5), \fIinn.conf\fR\|(5),
267 \&\fInews.daily\fR\|(8).