.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EXPIREOVER 8" .TH EXPIREOVER 8 "2022-07-10" "INN 2.7.2" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" expireover \- Expire entries from the news overview database .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBexpireover\fR [\fB\-ekNpqs\fR] [\fB\-f\fR \fIfile\fR] [\fB\-w\fR \fIoffset\fR] [\fB\-z\fR \fIrmfile\fR] [\fB\-Z\fR \fIlowmarkfile\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBexpireover\fR expires old entries from the news overview database. It reads in a list of newsgroups (by default from \fIpathdb\fR/active, but a different file can be specified with the \fB\-f\fR option) and then removes from the overview database mentions of any articles that no longer exist in the news spool. .PP If \fIgroupbaseexpiry\fR in \fIinn.conf\fR is true, \fBexpireover\fR also removes old articles from the news spool according to the expiration rules in \&\fIexpire.ctl\fR. Otherwise it only removes overview entries for articles that have already been removed by some other process, and \fB\-e\fR, \fB\-k\fR, \&\fB\-N\fR, \fB\-p\fR, \fB\-q\fR, \fB\-w\fR, and \fB\-z\fR are all ignored. .PP When \fIgroupbaseexpiry\fR is set, the default behavior of \fBexpireover\fR is to remove the article from the spool once it expires out of all of the newsgroups to which it was crossposted. The article is, however, removed from the overview database of each newsgroup as soon as it expires out of that individual newsgroup. The effect is that an article crossposted to several groups will be removed from the overview database from each group one-by-one as its age passes the expiration threshold for that group as set in \fIexpire.ctl\fR, and then when it expires out of the last newsgroup, it will be deleted from the news spool. .PP Articles that are stored in self-expiring storage backends such as \s-1CNFS\s0 are normally treated differently and not expired until they expire out of the backend regardless of \fIexpire.ctl\fR. See \fB\-N\fR, however. .PP By default, \fBexpireover\fR purges all overview information for newsgroups that have been removed from the server; this behavior is suppressed if \&\fB\-f\fR is given. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-e\fR" 4 .IX Item "-e" Remove articles from the news spool and all overview databases as soon as they expire out of any newsgroup to which they are posted, rather than retain them until they expire out of all newsgroups. \fB\-e\fR and \fB\-k\fR cannot be used at the same time. This flag is ignored if \&\fIgroupbaseexpiry\fR is false. .IP "\fB\-f\fR \fIfile\fR" 4 .IX Item "-f file" Use \fIfile\fR as the newsgroup list instead of \fIpathdb\fR/active. \fIfile\fR can be \f(CW\*(C`\-\*(C'\fR to indicate standard input. Using this flag suppresses the normal purge of all overview information from newsgroups that have been removed from the server. .IP "\fB\-k\fR" 4 .IX Item "-k" Retain all overview information for an article, as well as the article itself, until it expires out of all newsgroups to which it was posted. This can cause articles to stick around in a newsgroup for longer than the \&\fIexpire.ctl\fR rules indicate, when they're crossposted. \fB\-e\fR and \fB\-k\fR cannot be used at the same time. This flag is ignored if \&\fIgroupbaseexpiry\fR is false. .IP "\fB\-N\fR" 4 .IX Item "-N" Apply \fIexpire.ctl\fR rules to expire articles even from storage methods that have self-expire functionality. This may remove articles from self-expiring storage methods before the articles \*(L"naturally\*(R" expire. This flag is ignored if \fIgroupbaseexpiry\fR is false. .IP "\fB\-p\fR" 4 .IX Item "-p" By default, \fBexpireover\fR bases decisions on whether to remove an article on the arrival time on the server. This means that articles may be kept a little longer than if the decision were based on the article's posting date. If this option is given, expiration decisions are based on the article posting date instead. This flag is ignored if \fIgroupbaseexpiry\fR is false. .IP "\fB\-q\fR" 4 .IX Item "-q" \&\fBexpireover\fR normally prints statistics at the end of the expiration process. \fB\-q\fR suppresses this report. This flag is ignored if \&\fIgroupbaseexpiry\fR is false. .IP "\fB\-s\fR" 4 .IX Item "-s" \&\fBexpireover\fR normally only checks the existence of articles in the news spool if querying the storage method for that article to see if it still exists is considered \*(L"inexpensive\*(R". To always check the existence of all articles regardless of how resource-intensive this may be, use the \fB\-s\fR flag. See \fBstorage.conf\fR\|(5) for more information about this metric. .IP "\fB\-w\fR \fIoffset\fR" 4 .IX Item "-w offset" \&\*(L"Warps\*(R" time so that \fBexpireover\fR thinks that it's running at some time other than the current time. This is occasionally useful to force groups to be expired or not expired without changing \fIexpire.ctl\fR for the expire run. \fIoffset\fR should be a signed floating point number specifying the number of days difference from the current time to use as \*(L"now\*(R". This flag is ignored if \fIgroupbaseexpiry\fR is false. .IP "\fB\-z\fR \fIrmfile\fR" 4 .IX Item "-z rmfile" Don't remove articles immediately but instead write the path to the article or the token of the article to \fIrmfile\fR, which is suitable input for \fBfastrm\fR\|(1). This can substantially speed up deletion of expired articles for those storage methods where each article is a single file (such as tradspool and timehash). See the description of the \fIdelayrm\fR keyword in \fBnews.daily\fR\|(8) for more details. This flag is ignored if \&\fIgroupbaseexpiry\fR is false. .IP "\fB\-Z\fR \fIlowmarkfile\fR" 4 .IX Item "-Z lowmarkfile" Write the lowest article numbers for each newsgroup as it's expired to the specified file. This file is then suitable for \f(CW\*(C`ctlinnd lowmark\*(C'\fR. See \&\fBctlinnd\fR\|(8) for more information. .SH "EXAMPLES" .IX Header "EXAMPLES" Normally \fBexpireover\fR is invoked from \fBnews.daily\fR\|(8), which handles such things as processing the \fIrmfile\fR and \fIlowmarkfile\fR if necessary. Sometimes it's convenient to manually expire a particular newsgroup, however. This can be done with a command like: .PP .Vb 2 \& echo example.test | expireover \-f \- \-Z /lowmark \& ctlinnd lowmark /lowmark .Ve .PP This can be particularly useful if a lot of articles in a particular group have expired but the overview information is still present, causing some clients to see a lot of \*(L"this article may have been cancelled\*(R" messages when they first enter the newsgroup. .SH "HISTORY" .IX Header "HISTORY" Written by Rob Robertson and Rich \f(CW$alz\fR (with help from Dave Lawrence ) for InterNetNews. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBactive\fR\|(5), \fBctlinnd\fR\|(8), \fBexpire\fR\|(8), \fBexpire.ctl\fR\|(5), \fBinn.conf\fR\|(5), \&\fBnews.daily\fR\|(8).