319 lines
11 KiB
Plaintext
319 lines
11 KiB
Plaintext
|
NAME
|
|||
|
usestats - newsgroup statistic generator
|
|||
|
|
|||
|
SYNOPSIS
|
|||
|
usestats.pl [-hq] [-c <CONFFILE>] [-r|w <SAVEFILE>]
|
|||
|
|
|||
|
DESCRIPTION
|
|||
|
usestats erzeugt Statistiken <20>ber Newsgroups, indem vorhandene
|
|||
|
Postings analysiert und daraus verschiedene Reports erstellt werden.
|
|||
|
|
|||
|
Argumente:
|
|||
|
|
|||
|
-h
|
|||
|
Mit dem Argument -h wird eine kurze Hilfe ausgegeben.
|
|||
|
|
|||
|
-q
|
|||
|
Mit dem Argument -q werden alle Statusausgaben auf STDERR
|
|||
|
unterdr<64>ckt.
|
|||
|
|
|||
|
-c
|
|||
|
Mit dem Argument -c, gefolgt nach Leerzeichen von einem
|
|||
|
Dateinamen, kann eine Konfigurationsdatei <20>bergeben werden.
|
|||
|
|
|||
|
Beispiel: usestats.pl -c usestats.cfg
|
|||
|
|
|||
|
-w
|
|||
|
Mit dem Argument -w, gefolgt nach Leerzeichen von einem
|
|||
|
Dateinamen, k<>nnen die Daten der eingelesenen Postings
|
|||
|
gespeichert werden. Sp<53>tere Durchl<68>ufe von usestats.pl
|
|||
|
k<>nnen dann auf diese gespeicherten Daten zur<75>ckgreifen.
|
|||
|
|
|||
|
Beispiel: usestats.pl -w de-admin-misc.txt
|
|||
|
|
|||
|
-r
|
|||
|
Mit dem Argument -r, gefolgt nach Leerzeichen von einem
|
|||
|
Dateinamen, k<>nnen gespeicherte Daten zuvor eingelesener
|
|||
|
Postings aus einem fr<66>heren Durchlauf von usestats.pl
|
|||
|
wieder geladen werden.
|
|||
|
|
|||
|
Beispiel: usestats.pl -r de-admin-misc.txt
|
|||
|
|
|||
|
Eingabeformate:
|
|||
|
|
|||
|
usestats verarbeitet verschiedene Eingabeformate:
|
|||
|
|
|||
|
(1) MBOX-Datei
|
|||
|
|
|||
|
Die Postings m<>ssen in diesem Fall als Unix-MBOX-Datei vorliegen,
|
|||
|
also fortlaufen, getrennt jeweils durch eine Zeile der Form "From
|
|||
|
<user>@<domain> <dow> <mon> <day> <hour>:<minute>:<second>
|
|||
|
<year>". In dieses Format k<>nnen etliche Clients die Postings
|
|||
|
exportieren; abgesehen davon gibt es eine ganze Reihe
|
|||
|
Konvertierungsprogramme, die MBOX-Dateien ausgeben.
|
|||
|
|
|||
|
Die MBOX-Datei wird einfach in usestats gepiped:
|
|||
|
|
|||
|
usestats.pl < mypostings.txt
|
|||
|
usestats.pl -cusestats.cfg < mypostings.txt
|
|||
|
|
|||
|
(2) data.dat-Datei (Hamster)
|
|||
|
|
|||
|
Eine in dem Mail-und Newsserver "Hamster" fuer Windows-Systeme
|
|||
|
vorliegende Newsgroup kann auf dieselbe Weise in usestats
|
|||
|
gepiped werden. Zu diesem Zweck wird die entsprechende
|
|||
|
data.dat-Datei, die die Postings enth<74>lt, aus dem jeweiligen
|
|||
|
Spoolverzeichnis (...\Groups\news.grup.pe\data.dat) in
|
|||
|
usestats gepiped:
|
|||
|
|
|||
|
usestats.pl -cusestats.cfg < Groups\hamster.de.talk\data.dat
|
|||
|
|
|||
|
Zu diesem Zweck muss das zu parsende Format in einer
|
|||
|
Konfigurationsdatei auf "hamster" umgestellt werden.
|
|||
|
|
|||
|
(3) Spoolverzeichnis
|
|||
|
|
|||
|
usestats kann auch ein Spoolverzeichnis verarbeiten, in dem jedes
|
|||
|
Postings als einzelne Datei vorliegt, also bspw. im "traditional
|
|||
|
spool" von INN. F<>r diese Art der Verarbeitung muss in der
|
|||
|
Konfigurationsdatei die Variable "spooldir" gesetzt sein.
|
|||
|
|
|||
|
Beispiel: /var/spool/news/de/test
|
|||
|
|
|||
|
Reporte:
|
|||
|
|
|||
|
(1) Postings pro Tag
|
|||
|
|
|||
|
Dieser Report gibt aus, wie viele Postings pro Tag angefallen
|
|||
|
sind, aufsummiert nach Monaten.
|
|||
|
|
|||
|
(2) Newsgroupnutzung
|
|||
|
|
|||
|
Dieser Report gibt an, in wecher Newsgroup im Statistikzeitraum
|
|||
|
wie viele Postings abgesetzt wurden. Crossposts in mehrere Gruppen
|
|||
|
zugleich werden in jeder Gruppe als einzelnes Posting gez<65>hlt.
|
|||
|
|
|||
|
(3) Poster (unstrukturiert)
|
|||
|
|
|||
|
Dieser Report gibt an, wer im Statistikzeitraum wie viele
|
|||
|
Postings abgesetzt hat.
|
|||
|
|
|||
|
(4) Poster (strukturiert)
|
|||
|
|
|||
|
F<>r diesen Report werden alle Poster mit identischem Realnamen
|
|||
|
zusammengefasst, unabh<62>ngig von ggf. wechselnden Mailadressen.
|
|||
|
|
|||
|
(5) Subjects
|
|||
|
|
|||
|
Dieser Report fasst zusammen, wie viele Postings zum jeweiligen
|
|||
|
Subject angefallen sind.
|
|||
|
|
|||
|
(6) Newsreader
|
|||
|
|
|||
|
Schlie<69>lich werden die verwendeten Newsreader statistisch
|
|||
|
erfassrt.
|
|||
|
|
|||
|
(7) Nutzer pro Newsreader
|
|||
|
|
|||
|
Auch der Nutzeranteil pro Newsreader kann ausgegeben werden.
|
|||
|
|
|||
|
Konfigurationsdatei / Variablen:
|
|||
|
|
|||
|
Die Konfigurationsdatei besteht aus Zuweisungen von Werten zu
|
|||
|
Parametern in der Form
|
|||
|
|
|||
|
parameter = wert
|
|||
|
|
|||
|
Mit "#" eingeleitete Zeilen sind Kommentare.
|
|||
|
|
|||
|
Es k<>nnen folgende Parameter gesetzt werden:
|
|||
|
|
|||
|
spooldir:
|
|||
|
Das Spoolverzeichnis, falls die Postings von dort gelesen werden
|
|||
|
sollen. "spooldir" darf nicht gesetzt sein, wenn man eine MBOX in
|
|||
|
usestats pipen m<>chte.
|
|||
|
|
|||
|
Default: <undef>
|
|||
|
|
|||
|
recursive:
|
|||
|
Dieser Parameter kann den Wert 0 oder 1 annehmen und entscheidet
|
|||
|
entscheidet dar<61>ber, ob das Spoolverzeichnis rekursiv verarbeitet
|
|||
|
werden soll, d.h. alle darunterliegenden Unterverzeichnisse auch.
|
|||
|
Erm<72>glicht die Verarbeitung nicht nur einzelner Newsgroups,
|
|||
|
sondern auch ganzer Hierarchien oder des kompletten Newsspools des
|
|||
|
Servers.
|
|||
|
|
|||
|
Noch nicht intensiv getestet, Fehler bitte mitteilen!
|
|||
|
|
|||
|
Default: 0
|
|||
|
|
|||
|
pipeformat:
|
|||
|
Das Format der Datei, die in usestats gepiped wird.
|
|||
|
M<>gliche Werte sind 'mbox' fuer eine Datei in MBOX-Format oder
|
|||
|
'hamster' fuer eine .dat-Datei des Hamsters.
|
|||
|
|
|||
|
Default: mbox
|
|||
|
|
|||
|
charset
|
|||
|
Der Zeichensatz, in dem die Ausgabe erfolgen soll. In diesen
|
|||
|
Zeichensatz werden From:- und Subject:-Header f<>r die Ausgabe
|
|||
|
konvertiert. (Die Ausgaben des Programms selbst umfassen nur
|
|||
|
7bit-ASCII-Zeichen.)
|
|||
|
|
|||
|
Default: ISO-8859-1
|
|||
|
|
|||
|
tz:
|
|||
|
Die lokale Zeitzone. Empfohlen wird die Angabe als Abweichung von
|
|||
|
GMT, also bspw. "+0200".
|
|||
|
|
|||
|
Default: +0200
|
|||
|
|
|||
|
newsgroup:
|
|||
|
Wenn dieser Parameter angegeben wird, werden nur Postings
|
|||
|
erfasst, die -auch- in diese Newsgroup gegangen sind.
|
|||
|
|
|||
|
Default: <undef>
|
|||
|
|
|||
|
start:
|
|||
|
Bei Angabe dieses Parameters werden nur Postings nach diesem
|
|||
|
Datum erfasst. Die Angabe sollte im ISO-Format erfolgen, also
|
|||
|
bspw. "2003-10-01" f<>r den 1. Oktober 2003. Die Verwendung von
|
|||
|
"start"/"stop" verl<72>ngert die Programmlaufzeit.
|
|||
|
|
|||
|
Default: <undef>
|
|||
|
|
|||
|
stop:
|
|||
|
Bei Angabe dieses Parameters werden nur Postings vor diesem Datum
|
|||
|
erfasst. Die Angabe sollte im ISO-Format erfolgen, also bspw.
|
|||
|
"2003-10-31" f<>r den 31. Oktober 2003. Die Verwendung von
|
|||
|
"start"/"stop" verl<72>ngert die Programmlaufzeit.
|
|||
|
|
|||
|
Default: <undef>
|
|||
|
|
|||
|
day:
|
|||
|
Dieser Parameter kann den Wert 0 oder 1 annehmen und entscheidet
|
|||
|
dar<61>ber, ob der Report "Postings pro Tag" ausgegeben werden soll.
|
|||
|
|
|||
|
Default: 1
|
|||
|
|
|||
|
newsgroups:
|
|||
|
Dieser Parameter kann den Wert 0 oder 1 annehmen und entscheidet
|
|||
|
dar<61>ber, ob der Report "Newsgroupnutzung" ausgegeben werden
|
|||
|
soll.
|
|||
|
|
|||
|
Default: 0
|
|||
|
|
|||
|
poster:
|
|||
|
Dieser Parameter kann den Wert 0 oder 1 annehmen und entscheidet
|
|||
|
dar<61>ber, ob der Report "Poster (strukturiert)" ausgegeben werden
|
|||
|
soll.
|
|||
|
|
|||
|
Default: 1
|
|||
|
|
|||
|
posterraw:
|
|||
|
Dieser Parameter kann den Wert 0 oder 1 annehmen und entscheidet
|
|||
|
dar<61>ber, ob der Report "Poster (unstrukturiert)" ausgegeben
|
|||
|
werden soll.
|
|||
|
|
|||
|
Default: 0
|
|||
|
|
|||
|
subject:
|
|||
|
Dieser Parameter kann den Wert 0 oder 1 annehmen und entscheidet
|
|||
|
dar<61>ber, ob der Report "Subjects (strukturiert)" ausgegeben
|
|||
|
werden soll.
|
|||
|
|
|||
|
Default: 1
|
|||
|
|
|||
|
newsreader:
|
|||
|
Dieser Parameter kann den Wert 0 oder 1 annehmen und entscheidet
|
|||
|
dar<61>ber, ob der Report "Newsreader (strukturiert)" ausgegeben
|
|||
|
werden soll.
|
|||
|
|
|||
|
Default: 1
|
|||
|
|
|||
|
nruser:
|
|||
|
Dieser Parameter kann den Wert 0 oder 1 annehmen und entscheidet
|
|||
|
dar<61>ber, ob der Report "Nutzer pro Newsreader (strukturiert)"
|
|||
|
ausgegeben werden soll.
|
|||
|
|
|||
|
Default: 1
|
|||
|
|
|||
|
unknownreader:
|
|||
|
Dieser Parameter kann den Wert 'show' oder 'noshow' annehmen und
|
|||
|
entscheidet dar<61>ber, ob unbekannte Newsreader mit dem vollen
|
|||
|
Eintrag der Headerzeile User-Agent/X-Newsreader/X-Mailer
|
|||
|
angezeigt oder unter "Sonstige" summiert werden sollen.
|
|||
|
|
|||
|
Default: show
|
|||
|
|
|||
|
poster_width:
|
|||
|
Dieser Parameter gibt die Spaltenbreite an, die maximal f<>r die
|
|||
|
Namen der Poster zur Verf<72>gung steht. Analog kann der Wert auch
|
|||
|
f<>r die anderen Reports - ausser day - gesetzt werden.
|
|||
|
Der Wert sollte entsprechend der Angabe von poster_graph und der
|
|||
|
erw<72>nschten maximalen Zeilenl<6E>nge gew<65>hlt werden.
|
|||
|
|
|||
|
Default: 30
|
|||
|
|
|||
|
poster_indent:
|
|||
|
Dieser Parameter gibt die Einr<6E>ckung der Tabelle an. Analog kann
|
|||
|
der Wert auch f<>r die anderen Reports - ausser day - gesetzt
|
|||
|
werden.
|
|||
|
|
|||
|
Default: 2
|
|||
|
|
|||
|
poster_lines:
|
|||
|
Dieser Parameter gibt an, wie viele Zeilen die Tabelle haben
|
|||
|
soll, ob also nur die h<>ufigsten Poster genannt werden sollen. 0
|
|||
|
gibt die komplette Tabelle aus. Analog kann der Wert auch f<>r die
|
|||
|
anderen Reports - ausser day - gesetzt werden.
|
|||
|
|
|||
|
Default: 0
|
|||
|
|
|||
|
poster_cutoff:
|
|||
|
Dieser Parameter gibt an, wie viele Postings jemand mindestens
|
|||
|
erreicht haben muss, um in die Tabelle aufgenommen zu werden. 0
|
|||
|
gibt die komplette Tabelle aus. Analog kann der Wert auch f<>r die
|
|||
|
anderen Reports - ausser day - gesetzt werden.
|
|||
|
|
|||
|
Default: 0
|
|||
|
|
|||
|
poster_graph:
|
|||
|
Dieser Parameter gibt an, wie breit die "grafische" Darstellung
|
|||
|
der Prozentzahlen werden darf. 0 schaltet die Balkengrafik aus.
|
|||
|
Analog kann der Wert auch f<>r die anderen Reports - ausser day -
|
|||
|
gesetzt werden.
|
|||
|
|
|||
|
Default: 20
|
|||
|
|
|||
|
graphchar:
|
|||
|
Das Zeichen, das f<>r die Balkengraphik verwendet werden soll.
|
|||
|
|
|||
|
Default: #
|
|||
|
|
|||
|
DEPENDANCIES
|
|||
|
Die folgenden CPAN-Module werden neben Perl 5.6.1 oder h<>her ben<65>tigt:
|
|||
|
|
|||
|
Locale::Recode (und die <20>brigen Module aus diesem Paket)
|
|||
|
Date::Manip
|
|||
|
Mail::Address
|
|||
|
MIME::Words
|
|||
|
|
|||
|
BUGS
|
|||
|
- Fehler und Fehleingaben werden gr<67><72>tenteils nicht abgefangen.
|
|||
|
|
|||
|
Weitere Bugs nimmt <thh@inter.net> gerne entgegen.
|
|||
|
|
|||
|
TODO
|
|||
|
- HMTL-Templates als weitere Ausgabem<65>glichkeit sind angedacht.
|
|||
|
|
|||
|
AUTHOR
|
|||
|
Thomas Hochstein <thh@inter.net>
|
|||
|
|
|||
|
VERSION
|
|||
|
V 0.17 [beta]
|
|||
|
|
|||
|
COPYRIGHT
|
|||
|
<20> 10/2003-10/2004 Thomas Hochstein.
|
|||
|
See source for license und warranty.
|