batcher - article batching backend for InterNetNews
batcher [ -a arts ] [ -A
total_arts ] [ -b size ] [ -B total_size ] [
-i string ] [ -N num_batches ] [ -p
process ] [ -r ] [ -s separator ] [ -S
alt_spool ] [ -v ] host [ input ]
Batcher reads uses a list of files to prepare news batches
for the specified host. It is normally invoked by a script run out of
cron(8) that uses shlock(1) to lock the host name, followed by
a ctlinnd(8) command to flush the batchfile.
Batcher reads the named input file, or standard
input if no file is given. Relative pathnames are interpreted from the
/var/spool/news/out.going directory. The input is taken as a set of
lines. Blank lines and lines starting with a number sign (``#'') are
ignored. All other lines should consist of one or two fields separated by a
single space. The first field is the name of a file holding an article; if
it is not an an absolute pathname it is taken relative to the news spool
directory, /var/spool/news. The second field, if present, specifies
the size of the article in bytes.
- -S
- The ``-S'' flag may be used to specify an alternate spool directory to use
if the article is not found; this would normally be an NFS-mounted spool
directory of a master server with longer expiration times.
- -r
- By default, the program sets its standard error to
/var/log/news/errlog. To suppress this redirection, use the ``-r''
flag.
- -v
- Upon exit, batcher reports statistics via syslog(3). If the
``-v'' flag is used, they will also be printed on the standard
output.
- -b
- Batcher collects the text of the named articles into batches. To
limit the size of each batch, use the ``-b'' flag. The default size is 60
kilobytes. Using ``-b0'' allows unlimited batch sizes.
- -a
- To limit the number of articles in each batch, use the ``-a'' flag. The
default is no limit. A new batch will be started when either the byte
count or number of articles written exceeds the specified limits.
- -B
- To limit the total number of bytes written for all batches, use the ``-B''
flag.
- -A
- To limit the total number of articles that can be batched use the ``-A''
flag.
- -N
- To limit the total number of batches that should be created use the ``-N''
flag.
- In all three cases, the default is zero, which is taken to mean no
limit.
- -i string
- A batch starts with an identifying line to specify the unpacking method to
be used on the receiving end. When the ``-i'' flag is used, the initial
string, string, followed by a newline, will be output at the start
of every batch. The default is to have no initial string.
- -s
- Each article starts with a separator line to indicate the size of the
article. To specify the separator use the ``-s'' flag. This is a
sprintf(3) format string which can have a single ``%ld'' parameter
which will be given the size of the article. If the separator is not
empty, then the string and a newline will be output before every article.
The default separator is ``#! rnews %ld''.
- -p
- By default, batches are written to standard output, which is not useful
when more than one output batch is created. Use the ``-p'' flag to specify
the shell command that should be created (via popen(3)) whenever a
new batch is started. The process is a sprintf format string which
can have a single ``%s'' parameter which will be given the host name. A
common value is:
( echo '#! cunbatch' ; exec compress ) | uux - -r -z %s!rnews
If the input is exhausted, batcher will exit with a zero
status. If any of the limits specified with the ``-B,'' ``-A,'' or ``-N''
flags is reached, or if there is an error writing the batch, then
batcher will try to spool the input, copying it to a file. If there
was no input filename, the standard input will be copied to
/var/spool/news/out.going/host and the program will exit. If an input
filename was given, a temporary file named input.bch (if input
is an absolute pathname) or /var/spool/news/out.going/input.bch (if
the filename does not begin with a slash) is created. Once the input is
copied, batcher will try to rename this temporary file to be the name
of the input file, and then exit.
Upon receipt of an interrupt or termination signal, batcher
will finish sending the current article, close the batch, and then rewrite
the batchfile according as described in the previous paragraph.
Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews.
This is revision 1.18, dated 1996/10/29.