.if n .ds La ' .if n .ds Ra ' .if t .ds La ` .if t .ds Ra ' .if n .ds Lq " .if n .ds Rq " .if t .ds Lq `` .if t .ds Rq '' .de Ch \\$3\\*(Lq\\$1\\*(Rq\\$2 .. .TH EXPIRE 8 "February 14, 1986" .ds ]W Version B 2.10.3 .SH NAME expire \- remove outdated news articles .SH SYNOPSIS .BR /usr/lib/news/expire " [ " \-n .IR newsgroups " ] [" .BR \-i " ] [ " \-I " ] [" .BR \-a " ] [" .BI \-v " level" ] [ .B \-p ] .br [ .B \-h ] [ .B \-r ] [ .BI \-e " days" ] [ .BI \-E " days" ] .br .B /usr/lib/news/expire .BI \-f " user@site.DOMAIN" .br .B /usr/lib/news/expire .B \-u .SH DESCRIPTION .PP .I Expire is the program that removes out-of-date news articles from your system. You need to use a special program to do this, instead of just using .I find(1) or .I rm(1), because of the history file. If you just delete messages, then the history file will become incorrect because it will think that they are still there. .PP The normal use of .I expire is to run it at regular intervals with no options. It will remove all articles whose expiration date has passed. If you have a lot of disk space, you can run it once a week. If disk space is tight, you might want to run it every night. The length of time that it takes to run depends, of course, on many factors; on a VAX 750 with a 15-day expiration period and the volume of news that is typical in 1986 (about 5000 articles per week), .I expire will take roughly an hour to run. .PP .I Expire has the following options: .TP .B \-n Specify certain newsgroups whose articles will be expired. The other newsgroups will be left alone. The notation that you use with the \-n option is quite similar to that used in the sys file. To expire only the articles in net.origins, leaving everything else alone, type this: .nf /usr/lib/news/expire \-n net.origins .fi To expire only the articles in net.micro, but leave net.micro.pc and net.micro.mac alone, type this: .nf /usr/lib/news/expire \-n net.micro !net.micro.mac !net.micro.pc .fi For compatibility with the syntax of the sys file, you can also type the command this way, with commas instead of spaces between the fields. .nf /usr/lib/news/expire \-n net.micro,!net.micro.mac,!net.micro.pc .fi If you have certain groups that you use as archives, which should never have their articles expired, you must construct an .I expire command that mentions all groups except your archive groups. When doing this, be sure not to forget the groups .Ch junk , .Ch control , and .Ch general . A likely command would be: .nf /usr/lib/news/expire \-n all,!local.source,!mod.sources .fi .TP .B \-e Specify an expiration period. Normally .I expire removes articles that are older than 15 days. If you would like it to remove articles that are older than 5 days, you can type .nf /usr/lib/news/expire \-e 5 .fi If you would like it to remove articles from net.religion and net.politics that are older than 23 days, and leave everything else alone, you can type .nf /usr/lib/news/expire \-e 23 \-n net.religion net.politics .fi You can specify the \-e option as \-e15 instead of as \-e\ 15 if you want; this is for compatibility with old versions and old habits. .TP \-E Normally .I expire removes the record of an article from the history file at the same time it removes the article. One of the purposes of the history file is to prevent articles from being duplicated if a second copy arrives a while later, perhaps over some other path. If your site is extremely short on disk space, forcing you to specify a short expiration period in the \-e option, you can use the \-E option to ask that the information in the history file be kept round a bit longer, until the danger of duplicate arrival has passed. The command .nf /usr/lib/news/expire \-e 7 \-E 21 .fi Causes articles that are 7 or more days old to be removed, and history information that is 21 or more days old to be removed. If you use the \-E option, make sure that the value it specifies is always larger than the \-e option value, else you will end up with articles that are not in the history file; this can cause problems. .TP .B \-a Asks that articles be archived (usually in /usr/spool/oldnews) instead of being deleted. An example of its use would be .nf /usr/lib/news/expire \-e 30 \-a net.sources,mod.sources,!net.sources.bugs .fi .B \-a may be used with .B \-n . If no pattern is given for .B \-a , all newsgroups specified by .B \-n will be archived. .TP .B \-I instructs .I expire to ignore expiration dates stored in articles, and to look at the number of days that have passed since the article was received. Not very many articles have expiration dates in them. .TP .B \-i is like \-I, but it will look at the number of days that have passed and also at the explicit expiration date, and it will remove the article if either of those has passed. .TP \-v sets the verbosity mode. If you have specified a complex collection of options and they are not having the effect that you would like, then set \-v2 or \-v3 to find out what is going on. Values from 0 to 6 are meaningful, and \-v1 is the default. \-v0 will turn off messages, and \-v6 will cause .I expire to print every possible message. .TP \-p causes .I expire to use the date the article was posted, rather than the date it arrived at your machine, as the basis for expiration. Every now and then there is a .Ch "time warp" that causes a batch of very very old news to be dumped onto the network; judicious use of the \-p option can eradicate it. .TP \-f asks .I expire to remove messages sent by a particular user, regardless of the newsgroup that they are in, and regardless of how old they are. This option is intended not so much to selectively censor voluminous posters (though it has certainly been used for that) but to recover when a .I notesfiles site (running different news software) accidentally releases a duplicate batch of old news. An example of its use is .nf /usr/lib/news/expire \-f rlr@pyuxd.UUCP .fi Any article whose From: field exactly matches the argument to the \-f option will be removed. .TP \-h causes .I expire to ignore the history file, and do its expiration by looking at every article file in the spool directory. This is phenomenally slow\(emit can take 5 or 6 hours on an otherwise idle Vax 750\(embut if your history file is damaged and you cannot use .I find(1) because you are relying on expiration dates stored inside articles, then you have no other choice. .TP \-r causes .I expire to rebuild the history file in addition to doing expiration. The \-r option implies the \-h option; it scans every article in the spool directory and builds a new set of history and .I dbm(3X) files. It also performs expiration, so if you want to rebuild the history file while preserving all articles (as you might want to do on an archival file computer), you must specify .nf /usr/lib/news/expire \-r \-I \-e 999999 .fi to prevent expiration from taking place. If you do not rely on expiration dates stored inside articles, it is a good tonic to run the following sequence of commands once every now and then: .nf find /usr/spool/news \-size 0 \-o \-mtime +90 \-exec rm \-f {} \; /usr/lib/news/expire \-r .fi This will remove junk files that have somehow managed to find their way into the spooling directory, and then it will rebuild the history file. .TP \-u causes the minimum article-number field in the active file to be updated. This is used when converting from 2.10.1 news to later versions. .SH SEE ALSO inews(1), postnews(1), getdate(3), news(5), recnews(8), sendnews(8), uurec(8) .SH BUGS If .I inews(1) is run while .I expire is running, it can cause the article that inews is trying to insert to be absent from your history file. There is no automatic interlock between .I inews(1) and .I expire, so you must take care to turn off .I inews(1) while .I expire is running. This bug will likely be fixed soon, but for the moment be careful of it. .PP The newsgroup pattern argument to the \-n option is limited to 1024 characters, which is about 8 lines of text.