procbatch - Process an INN funnel file or innfeed-dropped file
procbatch [
-hquv] [
-c [
-s spooldir]]
[
-d outdir] [
-e peer] [
-m [
-t
backlogdir]]
batchfile
procbatch will take an INN funnel or
innfeed-dropped file and
split it up by host for direct processing with
innfeed or
innxmit.
While funnel files will normally only be of interest after a crash,
innfeed may drop articles for a variety of reasons, not all of which
indicate a fundamental problem. For example,
innfeed may drop articles
when started and stopped in quick succession while INN processes a large
number of control messages (a temporary indisposition), or when INN feeds it
articles for a site that isn't in
innfeed.conf (a misconfiguration).
Every running
innfeed opens a file named
innfeed-dropped.<id>, which should normally always be zero length
and deleted on exit. If there are non-zero length files,
innfeed has
dropped some articles, and those dropped article files have to be processed or
those articles will never be sent to peers. Though
news.daily
automatically process these files (invoking
procbatch), it is also
possible to do that manually. First make sure that the file doesn't correspond
to a currently running
innfeed, for example by calling "ctlinnd
flush innfeed!".
An INN funnel file, or an
innfeed-dropped file, will usually be of the
format:
pathname message-id peer1 peer2 peer3 ...
where
pathname can alternatively be a storage API token.
procbatch will break this file up into files named
peer1.tmp,
peer2.tmp,
peer3.tmp, etc. of the format:
pathname message-id
These tape files will be sorted and stripped of duplicate entries. Simply
renaming them to
peer1,
peer2,
peer3, etc. in a running
innfeed's backlog directory will cause them to be picked up
automatically by
innfeed every
backlog-newfile-period seconds
(as set in in
innfeed.conf). Use the
-m flag to have
procbatch rename and move them into place automatically.
After running
procbatch, you may want to make sure that every generated
backlog file has a corresponding ".lock" file. Otherwise,
innfeed doesn't have that site configured as a peer, meaning your
innfeed.conf may need fixing.
- -c
- Check for the existence of an article before writing
references to it to the tape files. Currently, this option can only be
used with a tradspool article store. Using it with any other spool format
will lead to all articles being dropped.
-
-d outdir
- Put the output file(s) into the directory outdir
(defaults to pathtmp as set in inn.conf). When also
specifying -m, the temporary output files will still be put here
before being moved into their final location.
-
-e peer
- Only process entries for peer.
- -h
- Display a short help screen.
- -m
- Directly append to tape files in innfeed's backlog
directory.
- -q
- Quiet mode: only display error messages.
-
-s spooldir
- Use spooldir as the location of the article spool
(defaults to patharticles as set in inn.conf). This option
has an effect only on a tradspool storage system when also specifying
-c.
-
-t backlogdir
- Use backlogdir as the location of the innfeed
backlog directory (the directory where the created tape files will be
put). Defaults to pathspool/innfeed. This option has an effect only
when also specifying -m.
- -u
- Unlink the input batchfile after processing.
- -v
- Add verbosity.
Take the file
innfeed-dropped.B012345, process its lines appending to
tapefiles in
innfeed's backlog directory, and remove it when done. Be
verbose while doing so:
procbatch -umv innfeed-dropped.B012345
Go through
innfeed-dropped.B012345 saving entries for "peer1"
in
/tmp/peer1.tmp, but only if the articles are still available in the
local tradspool:
procbatch -e peer1 -d /tmp -c innfeed-dropped.B012345
procbatch should be able to check for the existence of articles with any
kind of article store, possibly using
grephistory.
procbatch was written by James Brister and improved for speed by Clayton
O'Neill.
This manual page was written by Florian Schlichting, with the help of a memo by
Russ Allbery.
innfeed(8),
innxmit(8),
news.daily(8).