On Mon, 4 Nov 1996, Paul Haggart wrote: > Argh, this has caused me problems to no end! Can someone please send me a > working configuration for suck and inn? > > I can get suck to gather news and send it locally, but I can't figure out > how to get locally written messages sent to my ISP's news server. I don't > want to use nntp-style reading, because I don't have a 24/7 connection. > > Thanks in advance.
I use suck with CNews locally and INN on the remote system which feeds me. CNews creates a /var/spool/news/out.going/sentex/togo file which contains references to the articles that are to be sent out to my ISP (sentex). If you use INN locally, I think that things should work similarly as far as getting locally posted messages to your ISP's news server. (At least the relevant portions of the get-news.cnews and get-news.inn looked very similar). (I used dpkg -i suck_2.6.3-1.deb) Here's the files I've had to configure: 1) I set up a /etc/suck/get-news.conf file with the following entries: server: xwing.xwing.org remoteserver: news.sentex.net outgoingfile: sentex 2) I set up the required /etc/suck/sucknewsrc file. Here's its (partial) contents: alt.comp.hardware 2096 alt.comp.hardware.homebuilt 24343 alt.comp.hardware.homedesigned 702 alt.comp.hardware.pc-homebuilt 8334 alt.fishing 40064 alt.folklore.computers 156001 3) I had to customize some paths in the /usr/sbin/get-news.cnews file. Note that I've added a number of echo statements in order to verify that all the paths that get-news needed were correct. They weren't on first try. Here's the contents of this file: #!/bin/sh # NOTE: this script probably needs to be run by root. # Most systems will not let a normal user run rnews LOCAL_HOST=`cat /etc/suck/get-news.conf | grep "^server:" \ | awk '{gsub(" ","");print}' | cut -c8-` REMOTE_HOST=`cat /etc/suck/get-news.conf | grep "^remoteserver:" \ | awk '{gsub(" ","");print}' | cut -c14-` SITE=`cat /etc/suck/get-news.conf | grep "^outgoingfile:" \ | awk '{gsub(" ","");print}' | cut -c14-` echo "LOCAL_HOST is ${LOCAL_HOST}" echo "REMOTE_HOST is ${REMOTE_HOST}" echo "SITE is ${SITE}" SPOOLDIR=/var/spool/news # base directory for articles to be rposted NEWSDIR=/usr/lib/news # base directory for news binaries BINDIR=/usr/bin # base directory for suck rpost and scripts SBINDIR=/usr/sbin # base directory for scripts (Added this Nov. 3/96) TMPDIR=/tmp # location for suck.* files DATADIR=/etc/suck # location of sucknewsrc and killfile MSGDIR=/var/lib/suck # where to put MultiFile articles when getting them BATCHFILE=${TMPDIR}/batch.$$ # Name of batchfile to build for rnews or innxmit OUTGOING=${SPOOLDIR}/out.going/${SITE}/togo # location of the list of articles to upload echo "OUTGOING is ${OUTGOING}" echo "SPOOLDIR is ${SPOOLDIR}" SCRIPT=${SBINDIR}/put-news # my filter for rpost OUTFILE=${TMPDIR}/suck-tmp.$$ # used by rpost as article after it is filtered echo "OUTFILE is ${OUTFILE}" echo "SCRIPT is ${SCRIPT}, used as filter for rpost" echo "filter output file is \$\$o=${OUTFILE}" RPOST=${BINDIR}/rpost # my rpost SUCK=${BINDIR}/suck # my suck TESTHOST=${BINDIR}/testhost # my testhost RNEWS=/usr/lib/news/input/rnews # location of rnews # is the local host up and running so we can post articles we download? ${TESTHOST} ${LOCAL_HOST} > /dev/null 2>&1 LOCAL_RESULT=$? # is the remote host up and running so we can download articles? ${TESTHOST} ${REMOTE_HOST} > /dev/null 2>&1 REMOTE_RESULT=$? if [ ${REMOTE_RESULT} -eq 0 -a ${LOCAL_RESULT} -eq 0 ]; then # download articles #if using rnews change the -bi to -br ${SUCK} ${REMOTE_HOST} -br ${BATCHFILE} -dt ${TMPDIR} -dm ${MSGDIR} -dd ${DATADIR} SUCK_STATUS=$? if [ ${SUCK_STATUS} -eq 0 ]; then echo "Downloaded Articles" mv ${DATADIR}/sucknewsrc ${DATADIR}/old.newsrc mv ${TMPDIR}/suck.newrc ${DATADIR}/sucknewsrc rm ${TMPDIR}/suck.* if [ -f ${DATADIR}/suckothermsgs ]; then rm ${DATADIR}/suckothermsgs fi fi # now upload articles if [ -s ${OUTGOING} ]; then # outgoing articles to post ${RPOST} ${REMOTE_HOST} -b ${OUTGOING} -p ${SPOOLDIR} -f \$\$o=${OUTFILE} ${SCRIPT} \$\$i ${OUTFILE} if [ $? -ne 0 ]; then echo "Error remote posting" exit -1; else echo "Remotely posted articles" rm ${OUTFILE} ${OUTGOING} fi fi echo "You can hang up the modem now" if [ ${SUCK_STATUS} -eq 0 ]; then # locally post articles ${RNEWS} ${LOCAL_HOST} < ${BATCHFILE} if [ $? -eq 0 ]; then echo "Posted Articles Locally" rm -rf ${MSGDIR} rm ${BATCHFILE} fi fi fi 4) I also had to change the filter program /usr/sbin/put-news to filter out the Xref header line instead of the NNTP-Posting-Host line because the remote INN program complained about not being able to set the Xref header. Here' the contents of it: #!/bin/sh # this is just a simple script to run the one line sed # command to strip off the NNTP Posting Header that # my ISP's newsfeed doesn't like. # this could be written as a one liner # sed -e CMD $1 > $2 #set -x if [ $# -ne 2 ]; then echo echo "Usage `basename $0` infile outfile <RETURN>" echo exit -1 fi #SEDCMD="/^NNTP-Posting-Host/d" SEDCMD="/^Xref/d" OUTFILE=$2 INFILE=$1 if [ -f ${INFILE} ]; then sed -e ${SEDCMD} ${INFILE} > ${OUTFILE} if [ $? -ne 0 ]; then echo "Error" exit -1 fi else echo "$1 does not exist" exit -1 fi Well, that's about it. Your situation may be different, but if you instrument your get-news script as I did and pay careful attention to any error messages, you should be able to get things working. Hope this helps a bit. Best regards, Nick -------------------------------------------------------------------------- Nick Busigin [EMAIL PROTECTED] To obtain my pgp public key, email me with the subject: "get pgp-key" -------------------------------------------------------------------------- -- TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to [EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED]