NAME batcher - article-batching backend for InterNetNews

SYNOPSIS 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 ]

DESCRIPTION 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 <pathoutgoing in inn.conf> directory. The input is taken as a sequence 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 either the storage token of an article or the name of a file holding an article; if it is not an an absolute pathname or storage token, it is taken relative to <patharti- cles in inn.conf>. The second field, if present, specifies the size of the article in bytes.

OPTIONS -S alt_spool The -S flag may be used to specify an alternate spool direc- tory to use if the article is not found; this would perhaps be an NFS-mounted spool directory of a master server with longer expiration times.

-r By default, the program reports errors to <pathlog in inn.conf>/errlog. To suppress this redirection and report errors to standard error, 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 size 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 -b 0 allows unlimited batch sizes.

-a arts 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 total_size To limit the total number of bytes written for all batches, use the -B flag.

-A total_arts To limit the total number of articles that can be batched use the -A flag.

-N num_batches To limit the total number of batches that should be created use the -N flag.

In all three of the above cases, the default is zero, that is, 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 separator 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 process 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(3) format string which can have a single %s param- eter which will be given the host name. A common value is:

( echo #! cunbatch ; exec compress ) | uux - -r -z %s!rnews

EXIT STATUS 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 remaining input, copying it to a file. If there was no input filename, standard input will be copied to <pathoutgoing in inn.conf>/host and the program will exit. If an input filename was given, the input will be copied to a temporary file named input.bch (if input is an absolute pathname) or <pathoutgoing in inn.conf>/input.bch (if the filename does not begin with a slash). 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.

HISTORY Written by Rich $alz <> for InterNetNews. This is revision 6491, dated 2003-10-18.

SEE ALSO ctlinnd(8), inn.conf(5), newsfeeds(5), shlock(1).