.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .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" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" 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 "NINPATHS 8" .TH NINPATHS 8 "2008-04-06" "INN 2.4.5" "InterNetNews Documentation" .SH "NAME" ninpaths \- Report Usenet Path statistics (new inpaths) .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBninpaths\fR \fB\-p\fR \fB\-d\fR \fIdumpfile\fR .PP \&\fBninpaths\fR \fB\-r\fR \fIsite\fR \fB\-u\fR \fIdumpfile\fR [\fB\-u\fR \fIdumpfile\fR ...] \fB\-v\fR \&\fIlevel\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is an efficient and space-saving inpaths reporting program. It works as follows: you feed it the Path lines via an \s-1INN\s0 channel feed or some other similar method, and from time to time the program writes all its internal counters accumulated so far to a dump file. Another instance of the program picks up all the dump files, adds them up and formats them into the report. The purpose of the final report is to summarize the frequency of occurrence of sites in the Path headers of articles. .PP Some central sites accumulate the Path data from many news servers running this program or one like it, and then report statistics on the most frequently seen news servers in Usenet article Path lines. The \&\fBsendinpaths\fR shell script can be run once a month to mail the accumulated statistics to such a site and remove the old dump files. .PP You can get a working setup by doing the following: .IP "1." 4 Create a directory at \fIpathlog\fR/path (replacing \fIpathlog\fR here and in all steps that follow with the full path to your \s-1INN\s0 log directory). .IP "2." 4 Set up a channel feed using an entry like: .Sp .Vb 1 \& inpaths!:*:Tc,WP:ninpaths \-p \-d /path/inpaths.%d .Ve .Sp if your version of \s-1INN\s0 supports \s-1WP\s0 (2.0 and later all do). Replace with the full path to your \s-1INN\s0 log directory. .IP "3." 4 Enter into your news user crontab something like: .Sp .Vb 1 \& 6 6 * * * ctlinnd flush inpaths! .Ve .Sp (the actual time doesn't matter). This will force \fBninpaths\fR to generate a dump file once a day. .IP "4." 4 Once per month, run the \fBsendinpaths\fR script, which collects the dumps, makes a report, and then deletes the old dumps. (You can generate a report without mailing it and without deleting it with \f(CW\*(C`sendinpaths \-n\*(C'\fR.) .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-d\fR \fIdumpfile\fR" 4 .IX Item "-d dumpfile" Save dumps in \fIdumpfile\fR. Any \f(CW%d\fR in \fIdumpfile\fR will be replaced with the current system time when the dump is made. This option should be used with \fB\-p\fR. .IP "\fB\-p\fR" 4 .IX Item "-p" Read Path lines from standard input. .IP "\fB\-r\fR \fIsite\fR" 4 .IX Item "-r site" Generate a report for \fIsite\fR. Generally \fIsite\fR should be the value of \&\fIpathhost\fR from \fIinn.conf\fR. .IP "\fB\-u\fR \fIdumpfile\fR" 4 .IX Item "-u dumpfile" Read data from \fIdumpfile\fR. This option can be repeated to read data from multiple dump files. .IP "\fB\-v\fR \fIlevel\fR" 4 .IX Item "-v level" Set the verbosity level of the report. Valid values for \fIlevel\fR are 0, 1, and 2, with 2 being the default. .SH "NOTES" .IX Header "NOTES" If your \s-1INN\s0 doesn't have the \s-1WP\s0 feed flag (1.5 does not, 1.6 does, 1.7 I don't know, 2.0 and later all do), use the following newsfeeds entry: .PP .Vb 1 \& inpaths!:*:Tc,WH:ginpaths .Ve .PP where \fBginpaths\fR is the following script: .PP .Vb 2 \& #!/bin/sh \& exec egrep '^Path: ' | ninpaths \-p \-d /path/inpaths.%d .Ve .PP replacing as above. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fInewsfeeds\fR\|(5), \fIsendinpaths\fR\|(8) .PP This is a slightly modified version of Olaf Titz's original ninpaths program, which is posted to alt.sources and kept on his \s-1WWW\s0 archive under . .SH "HISTORY" .IX Header "HISTORY" \&\fBninpaths\fR was written by Olaf Titz . .PP The idea and some implementation details for ninpaths come from the original inpaths program, but most of the code has been rewritten for clarity. This program is in the public domain.