.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PROCBATCH 8" .TH PROCBATCH 8 "2024-05-19" "INN 2.7.2" "InterNetNews Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" procbatch \- Process an INN funnel file or innfeed\-dropped file .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBprocbatch\fR [\fB\-hquv\fR] [\fB\-c\fR [\fB\-s\fR \fIspooldir\fR]] [\fB\-d\fR \fIoutdir\fR] [\fB\-e\fR \fIpeer\fR] [\fB\-m\fR [\fB\-t\fR \fIbacklogdir\fR]] \fIbatchfile\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBprocbatch\fR will take an \s-1INN\s0 funnel or \fIinnfeed-dropped\fR file and split it up by host for direct processing with \fBinnfeed\fR or \fBinnxmit\fR. .PP While funnel files will normally only be of interest after a crash, \&\fBinnfeed\fR may drop articles for a variety of reasons, not all of which indicate a fundamental problem. For example, \fBinnfeed\fR may drop articles when started and stopped in quick succession while \s-1INN\s0 processes a large number of control messages (a temporary indisposition), or when \s-1INN\s0 feeds it articles for a site that isn't in \fIinnfeed.conf\fR (a misconfiguration). .PP Every running \fBinnfeed\fR opens a file named \fIinnfeed\-dropped.\fR, which should normally always be zero length and deleted on exit. If there are non-zero length files, \fBinnfeed\fR has dropped some articles, and those dropped article files have to be processed or those articles will never be sent to peers. Though \fBnews.daily\fR automatically process these files (invoking \fBprocbatch\fR), it is also possible to do that manually. First make sure that the file doesn't correspond to a currently running \&\fBinnfeed\fR, for example by calling \f(CW\*(C`ctlinnd flush innfeed!\*(C'\fR. .PP An \s-1INN\s0 funnel file, or an \fIinnfeed-dropped\fR file, will usually be of the format: .PP .Vb 1 \& pathname message\-id peer1 peer2 peer3 ... .Ve .PP where \fIpathname\fR can alternatively be a storage \s-1API\s0 token. .PP \&\fBprocbatch\fR will break this file up into files named \fIpeer1.tmp\fR, \&\fIpeer2.tmp\fR, \fIpeer3.tmp\fR, etc. of the format: .PP .Vb 1 \& pathname message\-id .Ve .PP These tape files will be sorted and stripped of duplicate entries. Simply renaming them to \fIpeer1\fR, \fIpeer2\fR, \fIpeer3\fR, etc. in a running \fBinnfeed\fR's backlog directory will cause them to be picked up automatically by \fBinnfeed\fR every \fIbacklog-newfile-period\fR seconds (as set in \fIinnfeed.conf\fR). Use the \fB\-m\fR flag to have \fBprocbatch\fR rename and move them into place automatically. .PP After running \fBprocbatch\fR, you may want to make sure that every generated backlog file has a corresponding \f(CW\*(C`.lock\*(C'\fR file. Otherwise, \fBinnfeed\fR doesn't have that site configured as a peer, meaning your \fIinnfeed.conf\fR may need fixing. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-c\fR" 4 .IX Item "-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. .IP "\fB\-d\fR \fIoutdir\fR" 4 .IX Item "-d outdir" Put the output file(s) into the directory \fIoutdir\fR (defaults to \fIpathtmp\fR as set in \fIinn.conf\fR). When also specifying \fB\-m\fR, the temporary output files will still be put here before being moved into their final location. .IP "\fB\-e\fR \fIpeer\fR" 4 .IX Item "-e peer" Only process entries for \fIpeer\fR. .IP "\fB\-h\fR" 4 .IX Item "-h" Display a short help screen. .IP "\fB\-m\fR" 4 .IX Item "-m" Directly append to tape files in \fBinnfeed\fR's backlog directory. .IP "\fB\-q\fR" 4 .IX Item "-q" Quiet mode: only display error messages. .IP "\fB\-s\fR \fIspooldir\fR" 4 .IX Item "-s spooldir" Use \fIspooldir\fR as the location of the article spool (defaults to \&\fIpatharticles\fR as set in \fIinn.conf\fR). This option has an effect only on a tradspool storage system when also specifying \fB\-c\fR. .IP "\fB\-t\fR \fIbacklogdir\fR" 4 .IX Item "-t backlogdir" Use \fIbacklogdir\fR as the location of the \fBinnfeed\fR backlog directory (the directory where the created tape files will be put). Defaults to \&\fIpathspool\fR/innfeed. This option has an effect only when also specifying \&\fB\-m\fR. .IP "\fB\-u\fR" 4 .IX Item "-u" Unlink the input batchfile after processing. .IP "\fB\-v\fR" 4 .IX Item "-v" Add verbosity. .SH "EXAMPLES" .IX Header "EXAMPLES" Take the file \fIinnfeed\-dropped.B012345\fR, process its lines appending to tapefiles in \fBinnfeed\fR's backlog directory, and remove it when done. Be verbose while doing so: .PP .Vb 1 \& procbatch \-umv innfeed\-dropped.B012345 .Ve .PP Go through \fIinnfeed\-dropped.B012345\fR saving entries for \f(CW\*(C`peer1\*(C'\fR in \fI/tmp/peer1.tmp\fR, but only if the articles are still available in the local tradspool: .PP .Vb 1 \& procbatch \-e peer1 \-d /tmp \-c innfeed\-dropped.B012345 .Ve .SH "BUGS" .IX Header "BUGS" \&\fBprocbatch\fR should be able to check for the existence of articles with any kind of article store, possibly using \fBgrephistory\fR. .SH "HISTORY" .IX Header "HISTORY" \&\fBprocbatch\fR was written by James Brister and improved for speed by Clayton O'Neill. .PP This manual page was written by Florian Schlichting, with the help of a memo by Russ Allbery. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBinnfeed\fR\|(8), \fBinnxmit\fR\|(8), \fBnews.daily\fR\|(8).