Re: inn / suck - help me!
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 nick@xwing.org
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
debian-user-REQUEST@lists.debian.org . Trouble? e-mail to Bruce@Pixar.com
Reply to: