Provided by: inn2_2.7.2~20240212-1build3_amd64 bug

NAME

       batcher - Article batching for InterNetNews

SYNOPSIS

       batcher [-rv] [-a articles] [-A total-articles] [-b size] [-B total-size] [-i string] [-N batches] [-p
       process] [-s separator] host [input]

DESCRIPTION

       batcher reads a list of files and prepares news batches for the specified host.  It is generally used to
       prepare UUCP feeds, but the resulting batches can be used by any application that uses rnews(1) to inject
       the articles.  It is normally invoked by a script run out of cron that uses shlock to lock the host,
       followed by ctlinnd to flush the batch file.  See send-uucp(8) for a front-end for batcher.

       batcher reads the file input, or standard input if no file is given.  If input is a relative file name,
       it is assumed to be in pathoutgoing as set in inn.conf.  Blank lines and lines starting with a number
       sign ("#") are ignored.  All other lines in the input should consist of one or two fields separated by a
       single space.  The first field is the storage API token of an article.  The second field, if present,
       specifies the size of the article in bytes.

       By default, batches are written to standard output (which isn't very useful if more than one batch is
       output), but see the -p option.

OPTIONS

       -a articles
           This  flag  limits  the  number  of articles included in each batch.  The default is no limit.  A new
           batch will be started when either the total bytes or the  number  of  articles  written  exceeds  the
           specified limits.

       -A total-articles
           Limits the total number of articles written for all batches.  As soon as the total number of articles
           written  to  batches  reaches or exceeds total-articles, all additional articles in the input will be
           deferred.  The default is no limit.

       -b size
           This flag sets the size limit for each batch; as soon as at least this much  data  has  been  written
           out,  a  new  batch  will  be started.  The default size is 60 KB.  Using "-b 0" will allow unlimited
           batch sizes.

       -B total-size
           Limits the total number of bytes written for all batches.  As soon as  the  total  bytes  written  to
           batches  reaches  or  exceeds total-size, all additional articles in the input will be deferred.  The
           default 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  this  flag  is  used, string, followed by a newline, will be output at the start of each
           batch.  The default is to have no initial string (under the  assumption  that  either  the  processor
           specified with the -p flag or some other later process will add the appropriate line).

       -N batches
           Limits  the  total  number  of  batches written.  As soon as the number of batches written reaches or
           exceeds batches, all additional articles in the input will be deferred.  The default is no limit.

       -p process
           By default, batches are written to standard output, which is not useful when  more  than  one  output
           batch  is  created.   If this option is given, each batch will instead be fed via a pipe to the shell
           command process.  The process argument must be an sprintf(3) format string, which may have  a  single
           "%s" parameter that will be replaced with the host name.

           A common value is:

               ( echo '#! gunbatch' ; exec gzip -c ) | uux - -r -z %s!rnews

           which generates gzip-compressed batches and feeds them to uux.

       -r  By default, batcher reports errors to pathlog/errlog.  To suppress this redirection and report errors
           to standard error, use the -r flag.

       -s separator
           Each  article  in  a  batch  starts  with  a  separator  line that indicates the size of the article.
           separator must be an sprintf(3) string, which may have a single "%ld" in  the  string  that  will  be
           replaced  with  the  size  of  the  article.   If  the separator is not empty, a newline will also be
           appended to it when it is added to the beginning of each article.

           The default separator is:

               #! rnews %ld

           and this should rarely be changed.

       -v  Upon exit, batcher reports statistics via syslog.  With  this  flag,  the  statistics  will  also  be
           printed to standard output.

EXIT STATUS

       If the input is exhausted and all batches are created successfully, batcher will exit with a zero status.

       If any of the limits specified with -A, -B, or -N flags are reached, or if there is an error in writing a
       batch, batcher will try to spool the remaining input by copying it to a file as follows:

       • If there was no input filename, the remaining input will be copied to pathoutgoing/host.

       • If  an  input  filename  was  given,  the  remaining  input will be copied to a temporary file named by
         appending ".bch" to the end of input (and qualified by adding pathoutgoing if input  was  not  a  fully
         qualified  path).  If this happens successfully, batcher will then try to rename this temporary file to
         input (thus replacing input with a copy of itself with  all  of  lines  for  the  successfully  batched
         articles removed).

       Upon  receipt  of  an  interrupt or termination signal, batcher will finish batching the current article,
       close the batch, and then rewrite the batch file as described above.

HISTORY

       Written by Rich $alz <rsalz@uunet.uu.net> for InterNetNews.  Rewritten by Russ Allbery  <eagle@eyrie.org>
       in POD.

SEE ALSO

       ctlinnd(8), inn.conf(5), newsfeeds(5), rnews(1), send-uucp(8), shlock(1).

INN 2.7.2                                          2024-03-31                                         BATCHER(8)