1EXPIRE(8) InterNetNews Documentation EXPIRE(8)
2
3
4
6 expire - Usenet article and history expiration program
7
9 expire [-iNnptx] [-d dir] [-f file] [-g file] [-h file] [-r reason] [-s
10 size] [-v level] [-w number] [-z file] [expire.ctl]
11
13 expire scans the history(5)-format text file pathdb/history and uses
14 the information recorded in it to purge itself of old news articles.
15 Its behaviour depends on the setting of groupbaseexpiry in inn.conf.
16
17 When groupbaseexpiry is false, article expiration is primarily done by
18 expire based on the expiration rules in expire.ctl that match the
19 storage class of each article. The articles and the history entries
20 are removed by expire, and then expireover does the additional cleanup
21 of removing the overview database entries. History entries of expired
22 articles are removed only if they are older than the number of days
23 specified in the "/remember/" line in expire.ctl. Articles stored
24 using a storage method that has self-expire functionality like CNFS are
25 by default not affected by expire's primary behaviour (but see the -N
26 flag to disable this).
27
28 When groupbaseexpiry is true, article expiration is primarily done by
29 expireover based on the expiration rules in expire.ctl that match each
30 newsgroup. Articles are removed from the news spool by expireover, and
31 then expire does some additional cleanup to remove old history database
32 entries.
33
34 For articles in self-expiring storage methods when groupbaseexpiry is
35 set to false in inn.conf and the -N flag is not given, or for all
36 articles when groupbaseexpiry is set to true, expire.ctl is ignored
37 except the "/remember/" line; expire then only probes to see if the
38 article still exists, and purges the relevant history entries if
39 appropriate.
40
41 Regardless the setting of groupbaseexpiry, expireover should be run
42 along with expire, usually via news.daily out of cron.
43
44 Note that expire never purges articles which do not match any entry in
45 expire.ctl.
46
47 Also note that if groupbaseexpiry is true, the server needs an overview
48 database in order to expire articles in storage backends that are not
49 self-expiring. If you do not plan to have an overview database, it
50 would then be better to only use self-expiring backends like CNFS, as
51 the history entries will still get cleaned up by expire when it detects
52 that an article no longer exists in that backend.
53
55 -d dir
56 If the -d flag is used, then the new history file and database is
57 created in the specified directory dir. This is useful when the
58 filesystem does not have sufficient space to hold both the old and
59 new history files. When this flag is used, expire leaves the
60 server paused and creates a zero-length file named after the new
61 history file, with an extension of ".done" to indicate that it has
62 successfully completed the expiration. The calling script should
63 install the new history file and unpause the server. The -r flag
64 should be used with this flag.
65
66 -f file
67 To specify an alternate history file, use the -f flag. This flag
68 is valid when used with the -d flag, and the output will be written
69 to the specified file. The default without -f is "history".
70
71 -g file
72 If the -g flag is given, then a one-line summary equivalent to the
73 output of -v 1, except preceded by the current time, will be
74 appended to the specified file.
75
76 -h file
77 To specify an alternate input text history file, use the -h flag.
78 expire uses the old dbz database to determine the size of the new
79 one. (If the -d flag is not used, the output filename will be the
80 same as the input filename with an extension of ".n".)
81
82 The default without the -h flag is pathdb/history.
83
84 -i To ignore the old database, use the -i flag.
85
86 -N The control file is normally ignored for articles in storage
87 methods which have self-expire functionality. If the -N flag is
88 used, expire still uses the control file for these articles.
89
90 This parameter is only useful when groupbaseexpiry is set to false
91 in inn.conf.
92
93 -n If innd is not running, use the -n flag and expire will not send
94 the "pause" or "go" commands. (For more details on the commands,
95 see ctlinnd(8)). Note that expire only needs exclusive access for
96 a very short time -- long enough to see if any new articles arrived
97 since it first hit the end of the file, and to rename the new files
98 to the working files.
99
100 -p expire makes its decisions on the time the article arrived, as
101 found in the history file. This means articles are often kept a
102 little longer than with other expiration programs that base their
103 decisions on the article's posting date. To use the article's
104 posting date, use the -p flag.
105
106 -r reason
107 expire normally sends a "pause" command to the local innd daemon
108 when it needs exclusive access to the history file, using the
109 string "Expiring" as the reason. To give a different reason, use
110 the -r flag. The process ID will be appended to the reason. When
111 expire is finished and the new history file is ready, it sends a
112 "go" command. See also the -n flag.
113
114 -s size
115 Optimize the new history database for approximately size pairs
116 (lines in history). Accurately specifying the size will create a
117 more efficient database. (The size should be the estimated
118 eventual size of the file, typically the size of the old file.)
119
120 -t If the -t flag is used, then expire will generate a list of the
121 tokens that should be removed on its standard output, and the new
122 history file will be left in history.n, history.n.dir,
123 history.n.index and history.n.hash. This flag is useful for
124 debugging when used with the -n flag. Note that if the -f flag is
125 used, then the name specified with that flag will be used instead
126 of history.
127
128 -v level
129 The -v flag is used to increase the verbosity of the program,
130 generating messages to standard output. The level should be a
131 number, where higher numbers result in more output. Level one will
132 print totals of the various actions done (not valid if a new
133 history file is not written), level two will print a report on each
134 individual file, while level five results in multiple lines of
135 output for every history line processed.
136
137 -w number
138 Use the -w flag to "warp" time so that expire thinks it is running
139 at some time other than the current time. The value should be a
140 signed floating point number indicating the number of days to use
141 as the offset.
142
143 -x If the -x flag is used, then expire will not create any new history
144 files. This is most useful when combined with the -n and -t flags
145 to see how different expiration policies would change the amount of
146 disk space used.
147
148 -z file
149 If the -z flag is used, then articles are not removed, but their
150 names are appended to the specified file. See the description of
151 delayrm in news.daily(8). If a filename is specified, it is taken
152 as the control file and parsed according to the rules in
153 expire.ctl. A single dash ("-") may be used to read the file from
154 standard input. If no file is specified, the file
155 pathetc/expire.ctl is read.
156
158 Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews. Converted
159 to POD by Julien Elie.
160
162 ctlinnd(8), expire.ctl(5), expireover(8), history(5), inn.conf(5),
163 innd(8), libinn_dbz(3), libinn_inndcomm(3), news.daily(8).
164
165
166
167INN 2.7.1 2022-07-10 EXPIRE(8)