expire - Usenet article and history expiration program
expire [-iNnptx] [-d dir] [-f file] [-g file] [-h file] [-r reason] [-s
size] [-v level] [-w number] [-z file] [expire.ctl]
expire scans the history(5)-format text file pathdb/history and uses
the information recorded in it to purge itself of old news articles.
Articles stored using a storage method that has self-expire
functionality are by default not affected by expire’s primary behavior
(but see the -N flag to disable this). In this case, expire.ctl is
ignored except the "/remember/" line for that article; expire does
still probe to see if the article still exists and purges the relevant
history and overview entries if appropriate. However, if
groupbaseexpiry in inn.conf is true, expire acts on all articles as
specified by expire.ctl regardless of whether their storage methods
have self-expire functionality.
Note that expire never purges articles which do not match any entry in
If the -d flag is used, then the new history file and database is
created in the specified directory dir. This is useful when the
filesystem does not have sufficient space to hold both the old and
new history files. When this flag is used, expire leaves the
server paused and creates a zero-length file named after the new
history file, with an extension of ".done" to indicate that it has
successfully completed the expiration. The calling script should
install the new history file and unpause the server. The -r flag
should be used with this flag.
To specify an alternate history file, use the -f flag. This flag
is valid when used with the -d flag, and the output will be written
to the specified file. The default without -f is "history".
If the -g flag is given, then a one-line summary equivalent to the
output of -v 1, except preceded by the current time, will be
appended to the specified file.
To specify an alternate input text history file, use the -h flag.
expire uses the old dbz(3) database to determine the size of the
new one. (If the -d flag is not used, the output filename will be
the same as the input filename with an extension of ".n".)
The default without the -h flag is pathdb/history.
-i To ignore the old database, use the -i flag.
-N The control file is normally ignored for articles in storage
methods which have self-expire functionality. If the -N flag is
used, expire still uses the control file for these articles.
-n If innd is not running, use the -n flag and expire will not send
the "pause" or "go" commands. (For more details on the commands,
see ctlinnd(8)). Note that expire only needs exclusive access for
a very short time -- long enough to see if any new articles arrived
since it first hit the end of the file, and to rename the new files
to the working files.
-p expire makes its decisions on the time the article arrived, as
found in the history file. This means articles are often kept a
little longer than with other expiration programs that base their
decisions on the article’s posting date. To use the article’s
posting date, use the -p flag.
expire normally sends a "pause" command to the local innd daemon
when it needs exclusive access to the history file, using the
string "Expiring" as the reason. To give a different reason, use
the -r flag. The process ID will be appended to the reason. When
expire is finished and the new history file is ready, it sends a
"go" command. See also the -n flag.
Optimize the new history database for approximately size pairs
(lines in history). Accurately specifying the size will create a
more efficient database. (The size should be the estimated
eventual size of the file, typically the size of the old file.)
-t If the -t flag is used, then expire will generate a list of the
tokens that should be removed on its standard output, and the new
history file will be left in history.n, history.n.dir,
history.n.index and history.n.hash. This flag is useful for
debugging when used with the -n flag. Note that if the -f flag is
used, then the name specified with that flag will be used instead
The -v flag is used to increase the verbosity of the program,
generating messages to standard output. The level should be a
number, where higher numbers result in more output. Level one will
print totals of the various actions done (not valid if a new
history file is not written), level two will print a report on each
individual file, while level five results in multiple lines of
output for every history line processed.
Use the -w flag to "warp" time so that expire thinks it is running
at some time other then the current time. The value should be a
signed floating point number indicating the number of days to use
as the offset.
-x If the -x flag is used, then expire will not create any new history
files. This is most useful when combined with the -n and -t flags
to see how different expiration policies would change the amount of
disk space used.
If the -z flag is used, then articles are not removed, but their
names are appended to the specified file. See the description of
delayrm in news.daily(8). If a filename is specified, it is taken
as the control file and parsed according to the rules in
expire.ctl. A single dash ("-") may be used to read the file from
standard input. If no file is specified, the file
pathetc/expire.ctl is read.
Written by Rich $alz <email@example.com> for InterNetNews. Converted
to POD by Julien Elie.
$Id: expire.pod 8577 2009-08-18 14:02:02Z iulius $
ctlinnd(8), dbz(3), expire.ctl(5), history(5), inn.conf(5), innd(8),