.TH NEWS.DAILY 8
.SH NAME
news.daily \- do regular Usenet system administration
.SH SYNOPSIS
.B news.daily
[
.B keyword...
]

.B innwatch
[
.BI \-t " sleeptime"
]
[
.BI \-f " controlfile"
]
[
.BI \-l " logfile"
]

.B expirerm
.I file

.B inncheck
[
.B \-v
]
[
.B \-pedantic
]
[
.B \-perms
[
.B \-fix
]
]
[
.B \-noperms
]
[
.I file...
]
.SH DESCRIPTION
.I News.daily
performs a number of important Usenet administrative functions.
This includes producing a status report, removing old news articles, 
processing log files, rotating the archived log files, renumbering the
active file, 
removing any old socket files found in the ``firewall'' directory,
and collecting the output.
.I "This program should be run under the news administrator's id, not as root."
.PP
By default, 
.I news.daily
performs all of its functions and mails the output to the news administrator,
.\" =()<.IR @<NEWSMASTER>@ .>()=
.IR usenet .
By specifying ``keywords'' on the command line, it is possible to
modify the functions performed, as well as change the arguments given to
.IR expire (8)
and
.IR expireover (8).
.PP
.I News.daily
should be run once a day, typically out of
.IR cron (8).
It may be run more often, but such invocations should at least use the
\&``norotate'' keyword to prevent the log files from being processed
and rotated too fast.
.PP
The
.IR shlock (1)
program is used to prevent simultaneous executions.
.PP
The following keywords may be used:
.TP
.I delayrm
This uses the ``\-z'' flag when invoking
.I expire
and
.IR expireover .
The names of articles to be removed are written to a temporary file, and
then removed after expiration by calling
.IR expirerm .
.TP
.I nostat
This keyword disables the status report generated by
.I innstat
(see
.IR newslog (8)).
Without this keyword, the status report is the first function performed,
just prior to obtaining the
.I news.daily
lock.
.TP
.I noexpire
By default,
.I expire
is invoked to remove old news articles.
Using this keyword disables this function.
.TP
.I noexplog
.I Expire
normally appends information to
.\" =()<.I @<_PATH_MOST_LOGS>@/expire.log>()=
.I /var/log/news/expire.log
(see
.IR newslog (5)).
Using this keyword causes the
.I expire
output to be handled as part of 
.IR news.daily 's
output.
It has no effect if the ``noexpire'' keyword is used.
.TP
.IR flags= "'expire\ args'"
By default, 
.I expire
is invoked with the an argument of ``\-v1''.
Using this keyword changes the arguments to those specified.
Be careful to use quotes if multiple arguments are needed.
This keyword has no effect if the ``noexpire'' keyword is used.
.TP
.I nologs
After expiration,
.IR scanlogs (8)
is invoked to process the log files.
Using this keyword disables all log processing functions.
.TP
.I norotate
By default, log processing includes rotating and cleaning out log files.
Using this keyword disables the rotating and cleaning aspect of the log
processing: the logs files are only scanned for information and no contents
are altered.
This keyword has no effect if the ``nologs'' keyword is used.
.TP
.I norenumber
This keyword disables the
.IR ctlinnd (8)
renumber operation.
Normally, the low-water mark for all newsgroups (see
.IR active (5))
is reset.
.TP
.I norm
By default, any socket
.I ctlinnd
socket that has not been modified for two days will be removed.
Using this keyword disables this function.
.TP
.I nomail
.I News.daily
normally sends a mail message containing the results to the administrator.
Using this keyword causes this message to be sent to stdout and stderr instead.
Normally, all utilities invoked by the script have their stdout and stderr
redirected into a file.
If the file is empty, no message is sent.
.TP
.I expireover
The
.I expireover
program is called after expiration to purge the overview databases.
.TP
.IR expireoverflags= "'expireover\ args'"
If the ``expireover'' keyword is used, this keyword may be used to specify
the flags to be passed to
.IR expireover .
If the ``delayrm'' keyword is used, then the default value is ``\-z''
and the list of deleted files; otherwise, the default value is ``\-s''.
.TP
.I /full/path
The program specified by the given path is executed just before any
expiration is done.
A typical use is to specify an alternate expiration program and use the
\&``noexpire'' keyword.
Multiple programs may be specified; they will be invoked in order.
.PP
The ``norotate'' keyword is passed on to
.I scanlogs
if it is invoked.
.I Expirerm
is a script that removes a list of files.
The specified
.I file
lists the files.
It is sorted, and then fed into a pipeline responsible for doing
the removal, normally
.IR fastrm (8).
If there seemed to be a problem removing the files, then mail is sent to
the news administrator.
If there were no problems, then
.I file
is renamed to
.\" =()<.I @<_PATH_MOST_LOGS>@/expire.list>()=
.I /var/log/news/expire.list
where it is kept (for safety) until the next day's expiration.
.PP
.I Innwatch
is a script that can be started at news boot time.
It periodically \(em every
.I sleeptime
seconds \(em examines the load average, and the number of free blocks
and inodes on the spool partition, as described by its
.IR controlfile ,
.IR innwatch.ctl (5).
If the load gets too high, or the disk gets too full, it throttles the server.
When the condition restores, it unblocks the server.
In addition, on each pass through the loop it will check the specified
.I logfile
to see if it has been modified, and send mail to the news administrator
if so.
It is usually a good idea to set this to the
.IR syslog (3)
file that receives critical news messages.
Upon receipt of an interrupt signal,
.IR innwatch
will report its status in the file
.\" =()<.IR @<_PATH_INNWSTATUS>@ .>()=
.IR /news/lib/innwatch.status .
.PP
.I Inncheck
is a
.IR perl (1)
script that verifies the syntax and permissions of all InterNetNews
configuration files.
If no
.I files
are specified, it checks all files.
A filename may be followed by an equal sign and a path to indicate
the pathname to use for the file.
For example, ``newsfeeds=/tmp/nf'' will check the syntax of a new
.IR newsfeeds (5)
without requiring it to be installed.
If the ``\-v'' flag is used, it prints status information as it checks
each file.
If the ``\-pedantic'' flag is used, it checks the files for omissions which
are not strictly errors, but which might indicate a configuration error.
.PP
If any file is specified, only the permissions on those files are checked.
The ``\-noperms'' flag will suppress this check.
If the ``\-perms'' flag is used the script verifies the ownership and
permissions of all files.
The ``\-fix'' flag can also be used so that the output can be executed
as a shell script.
.SH HISTORY
.I News.daily
and this manual page written by Landon Curt Noll <chongo@toad.com> and
Rich $alz <rsalz@uunet.uu.net>.
.I Inncheck
written by Brendan Kehoe <brendan@cs.widener.edu> and Rich.
.I Innwatch
written by Mike Cooper <mcooper@usc.edu> and <kre@munnari.oz.au>.
.de R$
This is revision \\$3, dated \\$4.
..
.R$ $Id: news.daily.8,v 1.6 1993/03/18 21:03:42 rsalz Exp $
.SH "SEE ALSO"
active(5),
ctlinnd(8), 
expire(8),
fastrm(8),
newslog(5),
newslog(8),
innwatch.ctl(5),
shlock(1).
