Das Skript get.news
ist nun zu bearbeiten, die zu bearbeitenden
Zeilen sind durch ->
gekennzeichnet, im Beispiel ist nur der Header
der Datei aufgeführt:
news@sonne> vim get.news
#!/bin/sh
# BEFORE USING - check to ensure all the paths defined below
# are correct!!
# NOTE: this script probably needs to be run by root. Most
# systems will not let a normal user run ctlinnd
-> REMOTE_HOST=java.cs.uni-magdeburg.de
-> LOCAL_HOST=localhost
-> SPOOLDIR=/var/spool/news # base directory for articles to
# be rposted
-> NEWSDIR=/usr/lib/news # base directory for news
# binaries
-> BASEDIR=/var/lib/news/sucks # base directory for scripts and
# data files
CTLINND=${NEWSDIR}/bin/ctlinnd # location of binary
SHLOCK=${NEWSDIR}/bin/shlock # location of binary
TMPDIR=${BASEDIR} # location for suck.* files
MSGDIR=${BASEDIR}/Msgs # where to put MultiFile messages
# when getting them
-> SITE=java.cs.uni-magdeburg.de # name of site from newsfeeds
# file
OUTGOING=${SPOOLDIR}/out.going/${SITE} # location of the list
# of articles to upload
# ...
TESTHOST=testhost
RPOST=rpost
SUCK=suck
# if we are already running, abort
# ...
|
Das Skript put.news
sollte in der ursprünglichen Version funktionieren:
news@sonne> less put.news
#!/bin/sh
# this is just a simple script to use sed to strip off the
# NNTP_Posting_Host and Xref headers that my ISP's newsfeed
# doesn't like. this could be written as a one liner
# sed -e SEDCMD1 $1 | sed SEDCMD2 > $2
if [ $# -ne 2 ]; then
echo
echo "Usage `basename $0` infile outfile "
echo
exit -1
fi
SEDCMD="/^NNTP-Posting-Host/d"
SEDCMD2="/^Xref/d"
OUTFILE=$2
INFILE=$1
if [ -f ${INFILE} ]; then
sed -e ${SEDCMD} ${INFILE} | sed -e ${SEDCMD2} > ${OUTFILE}
if [ $? -ne 0 ]; then
echo "Error"
exit -1
fi
else
echo "$1 does not exist"
exit -1
fi
|
Bevor es ans Herunterladen der Artikel geht, beschreiben wir in einer
Datei sucknewsrc
, welche Newsgruppen wir überhaupt lokal speichern
wollen:
news@sonne> vim sucknewsrc
alt.linux 0
alt.os.linux 0
de.markt.comp.hardware 0
|
Die Nummern hinter den Newsgruppen geben an, bis zu welcher Nummer die Artikel
schon lokal vorliegen. Nach dem Aufruf von get.news
entsprechen diese
dann der höchsten heruntergeladenen Artikelnummer.
Um nicht eine Unmenge an Artikeln zu ziehen, sollte man die Nummern initial
auf -1
setzen und einmal get.news
aufrufen.
Die Datei sucknewsrc
enthält anschließend die auf dem Newsserver
liegenden Artikelnummern:
news@sonne> less sucknewsrc
alt.linux 7777
alt.os.linux 64476
de.markt.comp.hardware 106330
|
Durch Herabsetzen der Nummern um den Wert x
erreicht man beim
nächsten Aufruf von get.news
das Herunterladen der letzten
x
Artikel.