Newsgroup: it.comp.os.linux.iniziare
Titolo: [X-post] INN-2.x + suck/rpost: "Empty file, skipping"

Salve a tutti.
Sono alle prese con la messa in piedi di INN.
L'ho installato e configurato seguendo alcune guide in rete e
cercando di capirci qualcosa.
Dopo essermi informato sulle alternative per postare e ricevere i
messaggi ho deciso di fare una prova con suck/rpost. Vorrei
provare anche newsx, ma una cosa alla volta...
Dunque. Come newsreader uso tin e ho notato che funziona
impostandolo correttamente ed usandolo come rtin ma sul server
locale...esattamente come faccio attualmente con leafnode.
Mi era venuto il dubbio di usarlo liscio accedendo direttamente
allo spool locale, ma nonostanse veda il gruppo che ho
sottoscritto, quando tento di entrarci mi dice quel gruppo non
esiste lì...eeppure ce l'ho davanti al naso, va bè.  :-|
Mi piacerebbe capire perchè accade questo, comunque non è un
problema fondamentale visto che rtin mi conente di postare e
leggere verso e dal server locale.
Fin qui quasi tutto ok quidi.
---
Oggi volevo fare una prova rapida di lettura degli articoli
scaricandoli dal server di aioe. Ho letto la guida sul sito e a
quanto pare se inn è configurato bene la ricezione degli articoli
può essere affidata ad un comando da shell. Sì, ci sono anche
degli scripts, ma sempre per capirci qualcosa di più preferisco
all'inizio fare a mano.
Il comando suggerito dalla guida è all'incirca il seguente:
suck 
news.aioe.org
 -A -bp -hl localhost -c -i -20 -M -n
Con questo comando appare un bel po' di roba a schermo...non sono
sicurissimo che vada tutto per il meglio...comunque nello spool ho i
messaggi che riesco alla fine a leggere con rtin.
Se avete consigli su come controllare ed interpretare che tutto
venga effettuato in modo corretto dite pure (non so...file di log
o simili).
E anche fi qui più o meno, ma da verificare meglio comunque tutto
ok.
---
Ora...fatta la prova di ricezione ho provato a postare qualcosa.
Da questo punto di vista ho dovuto cercare un po' di più in rete
visto che sul documento precedente veniva proposto uno script in
perl di cui però il link è interrotto. Ad ogni modo di perl non
so nulla: preferisco la bash.
Fortunatamente Marco D'Itri nel suo inn+suck-HOWTO propone uno
script bash appunto che mi sembra piuttosto "semplice", ma in
alcuni punti nonmi sono chiari certi aspetti.
Tanto per fare una prova al volo ho cercato di estraloplare "a
naso" ciò che mi sembrava il punto focale ovvero il comando
rpost:
rpost $SERVER -d -b $FEED.work \
   -f /usr/lib/suck/put-news \$\$i \
   /var/lib/suck/rpost \$\$o=/var/lib/suck/rpost \
   > /var/log/rpost.log
Non ho capito benissimo il flag -f ma da man mi pare riguardi il
filtro degli articoli...
Insomma alla fine ho dato questo comando:
rpost 
news.aioe.org
 -d -b /var/spool/news/outgoing/
aioe.org
Prima di fare ciò ho provato un messaggio su it.test e constatato
che il file 
aioe.org
 (nome che ho dato al feed in newsfeeds)
esisteva. Non solo ma era anche non vuoto:
conteneva (dopo il post in locale con rtin) una riga che prima
non c'era...ora non l'ho sottomano....ma era una stringa
"strana". Penso foose l' a dimostrare la presenza
dell'articolo....spero insomma.  :-|
Ok, dato il comando sopra, il collegamento funge ma al momento
del posting...dice tra le altre cose:
"Empty file, skipping"
come ho riportato nel tittol della discussione.
Se fosse necessario riportare la sessione completa fatemi pure
sapere...ora non l'ho sottomano.
Insomma è come se il file "
aioe.org
" presente in outgoing fosse
vuoto...inveca qualcosa conteneva (anche se magari qualcosa di
inutile).
Aggiungo (probabilmente info inutile) che dal newsreader vedo il
mio messaggio sul server locale, quindi il posting locale è
avvenuto correttamente direi.
Avete idea di dove possa essere il problema, magari avendo la
pazienza di spiegarmi anche il "perchè" della questione?
Vi ringrazio in anticipo, chiedo scusa per la lunghezza.
A presto.
____________________________________
Mail: johnnynews at vfemail dot net


NNTP-Posting-Host: <cut> 
X-Trace: <cut>
X-Complaints-To: <cut>
NNTP-Posting-Date: <cut>
User-Agent: <cut>
Xref: 
testing.localdomain.net
 it.test:177
prova post rpost+inn
----
Ora penso che inn in qualche modo associ il Message-ID al
contenuto del FEED sopra.
Non conosco il significato di quella strana stringa:
@050000000008000000B10000000000000000@
??? :-?   va bè.
Io mi aspettavo che rpost col comando sopra considerasse questa
stringa e da quella ricavasse l'articolo corrispondente da
postare.
Poi mi aspettavo che l'articolo venisse rifiutato probabilmente
per via degli headers sovrabbondanti che vanno filtrati.
Invece è come se quella stringa lì non riesca a indirizzare rpost
verso l'articolo corrispondente che come si vede c'è e non è
vuoto. Invece quel "empty file, skipping" mi disorienta un po'.
Avete idee?


 
ftp://ftp.aioe.org/Programs/News/Other/rpost.pl
L'atro giorno non riuscivo a raggiungere il link...ora và...
diamo un'occhiata..ma io din Perl non ne so nulla.  :-\
---
L'ho letto un po', ma non capisco quasi nulla e comunque non
riesco ad estrapolare l'inforamzione che serve a me.
Mi dareste una mano a capire?


> 
ftp://ftp.aioe.org/Programs/News/Other/rpost.pl
Rileggendolo alla luce delle ulteriori ricerche in rete...vedo
che sm viene coinvolto dallo scritpt perl. Pertanto mi pare di
capire che sto muovendomi nella giusta direzione.
Non esitate se avete idee o interventi che possano consigliare
metodi efficenti in termini di scripting per riuscire alla fine a
postare.


 postare.
Ribadisco.
Nel frattempo includo uno script bash per l'invio dei messaggi.
Anzi sono due perchè è necessario usare quello di filtering degli
articoli.
=========================================invia.sh
#!/bin/sh
# invia messaggi
OUTSPOOL=/var/spool/news/outgoing
FEED=
aioe.org
SERVER=
news.aioe.org
TMP=/usr/lib/news/tmp/rpost
ARTICLE=$TMP/article
FILTER=/usr/lib/news/mybin/smartfilter.sh
if [ ! -e $TMP ]; then
  mkdir -p $TMP
fi
mv $OUTSPOOL/$FEED $OUTSPOOL/$FEED.wk
ctlinnd -s -t30 flush $FEED
cp $OUTSPOOL/$FEED.wk $OUTSPOOL/$FEED.bk
rpost $SERVER -d -b $OUTSPOOL/$FEED.wk \
  -f  $FILTER \
  \$\$i $ARTICLE \
  \$\$o=$ARTICLE
======================================smartfilter.sh
#!/bin/bash
# filtra articoli generati da sm con sed
#set -x
if [ $1 = --help ]; then
  cat<<.
utilizzo:
filter.sh <dirty-file> <clean-file>
.
fi
BADHEADERS="/^NNTP-Posting-Host:\|^NNTP-Posting-Date:\|^Path: \
\|^Xref:\|^X-Server-Date:\|^X-Complaints-To:\|^X-Trace:/d"
TOKEN=$1
CLEAN=$2
sm $TOKEN| sed -e $BADHEADERS > $CLEAN
======================================================
Sicuramente sono migliorabili...è solo una prova che funziona.
ci sono alcuni aspetti, tipo l'inclusione dei token
nell'eventuale FEED.fail in FEED in modo da recuperare eventuali
articoli non postati per errori vari durante la sessione.
Inoltre non ho testato il comportamento nel caso di più
token...cioè con più articoli da postare.
Poi ci sarebbe anche la situazione dei FEED multipli...specie per
scaricare i post mi trovo meglio con l'unina....mi pare più
veloce....ma questo riguarda i file di configurazione di inn in
particolare /etc/news/newsfeeds se non sbaglio...insomma la messa
in piedi di un server "pienamente funzionale" è ancora in corso
d'opeara...diciamo che fin qui anche se con un po' di fatica
(mia) funziona.


 particolare /etc/news/newsfeeds se non sbaglio...
Bè, si anche suck e rpost vanno lanciati con le opzioni coerenti.
In particolare col feed coerente...
Tipo usare suck con l'unina e rpost con aioe...tanto per dire.


 Tipo usare suck con l'unina e rpost con aioe...tanto per dire.
Ho cercato di configurare la baracca così:
Ho aggiunto in newsfeeds una nuova voce per unina ora ha una
faccia del genere, nell'ultima parte con i feed esterni:
aioe.org/news.unina.it\
        it.test,\
        !control*,\
        !junk*\
        :Tf,Wfm:
unina.it/news.unina.it,aioe.org\
        it.test,\
        !control*,\
        !junk*\
        :Tf,Wfm:
In realtà potrebbe anche non servire a nulla l'aggiunta di
unina...non mi è chiarissima sta faccenda dei feeds.
Comunque più che altro è importante cambiare le opzioni di suck
sostituendovi il server remoto da cui reperire le news.
#!/bin/bash
# scraica gli articoli da usenet con suck
ETC=/usr/lib/news/etc/suck
#REMOTE=
news.aioe.org
REMOTE=
news.unina.it
LOCAL=
testing.localdomain.net
suck $REMOTE -A -hl $LOCAL -bp -c -i -20 -M -n -dd $ETC
---
È importante cancellare in $ETC i vari sucknewsrc perchè i server
hanno numearazioni diverse degli articoli in particolare aioe ha
meno articoli di unina su it.*.
Il file sucknewsrc si basa sullo scaricamento dei messaggi in
base al numero ma se precedentemente da aioe avevo scaricato gli
articoli fino al 1000-simo di un certo gruppo, ora che mi
connetto a unina che magari contiene 10000 articoli su quel
gruppo ecco che suck tenterà di scaricare i 9000 che non secondo
lui non ho.  :-S
Ad ogni modo in questo modo riesco a postare su aioe e scaricare
i messaggi da unina.
Se avete consigli su come configurare meglio non esitate.
