# get.news

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 # ...`

# put.news

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`

# sucknewsrc

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.