Konfiguration von suck News Network File System Inhalt Index


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.


Konfiguration von suck News Network File System Inhalt Index