SUCKの設定
特に指定がなければrootの権限で作業します。
1 パッケージの導入
CD-ROMのcontrib/Networkにあります。
installpkgやpkgtoolでインストールして下さい。
なお、INN 2.2に変更してある場合はパッケージのsuckが未対応らしいので、接続出来ることが確認出来次第最新のソースを入手してコンパイルしなおした方が良いでしょう。
設定ファイルはそのまま流用可能なようです。
2 設定ファイル
/usr/local/suckにあります。
まず、必要な情報をまとめておきましょう。
以下の前提で設定します。
接続先のフルドメイン名:server.himitu.or.jp
newsfeedsのホスト名:server
発呼時間:深夜2時14分
まずはget.news.innxmitです。
接続先に関する内容を書きます。
付属の例からの変更点を示します。
#!/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=server.himitu.or.jp
#REMOTE_HOST="input_your_news_server"
LOCAL_HOST=localhost
SPOOLDIR=/var/spool/news # base directory for articles to be rposted
NEWSDIR=/usr/local/news # base directory for news binaries
BASEDIR=/usr/local/suck # 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=server # name of site from newsfeeds file
OUTGOING=/var/spool/news/outgoing/${SITE} # location of the list of articles to upload
OUTGOINGNEW=${OUTGOING}.new # file to contain the list temporarily
OUTGOINGFAIL=${OUTGOINGNEW}.fail # file with failed xfers
SCRIPT=${BASEDIR}/put.news # my filter for rpost
OUTFILE=/tmp/tmp$$ # used by rpost as article after it is fltered
LOCKFILE=${BASEDIR}/getnews.lock # lock file to prevent multiple instances of script
NEWSGROUP=news # which group owns the file in out.going, typically either news or uucp.
TESTHOST=/usr/local/bin/testhost
RPOST=/usr/local/bin/rpost
SUCK=/usr/local/bin/suck
(中略)
# download messages
${SUCK} ${REMOTE_HOST} -c -bp -hl ${LOCAL_HOST} -dt ${TMPDIR} -dm ${MSGDIR} -dd ${BASEDIR}
(後略)
そのまま指示どおり修正すれば良いです。
最後の${SUCK}の行は、サンプルには-Aが付いていると思いますが、これは必ず外してください。
そのままでは相手のactiveをそのままsucknewsrcへ取り込もうとして接続時間が異常に長くなります。
次にsucknewsrcです。
取り込みたいニュースグループを列挙します。
spd.plan.spd-network 100
spd.freak.anime 100
最後の数字は前回接続したときのサーバのactiveの値です。
サーバ側のactiveの数字がこの値より増えていれば未読記事があると判断します。
でも、最初の接続では不明ですから、
spd.plan.spd-network -10
spd.freak.anime -10
としておけば次の接続で最近10件を取り込みます。
3 接続試験
必ず事前にsuでrootの権限を得て下さい。
以下のコマンドで接続を行います。
自動発呼ではない場合,既にダイアルアップ接続が完了している状態で行って下さい。
# /usr/local/suck/get.news.innxmit
画面には接続中の状態が表示されます。
以上でニュースの受信が可能になりました。
出来ればget.news.innxmitを呼び出すシェルスクリプトを作った方が良いでしょうね。
*.newというファイルがあると動作がおかしくなるため、削除後に呼び出すためです。
また、動作中のメッセージを/tmpに残しておき、トラブル発生時の参考にします。
chmod +x getnewsを忘れないように。
/usr/local/suck/getnews:
#!/bin/sh rm -f /usr/local/news/spool/outgoing/*.new /usr/local/suck/get.news.innxmit > /tmp/lastget.magical
4 ニュースを送る設定
newsfeedsへ接続先の追加をします。
server/server:*,!fj.*,!tnn.*,!junk,!japan.*,!local.*,!control.*:Tf,Wnm:
行頭はget.news.innxmitのsiteで示したマシン名です。
行の最後のTf,WnmはUUCPでの設定とは違うので注意してください。
修正後に/usr/local/news/bin/ctlinnd reload newsfeeds whatを実行してINNに認識させます。
最後に/var/spool/cron/crontabs/rootに3.で作成したgetnewsを定期的に実行するよう記述します。
14 2 * * * /usr/local/suck/getnews
再起動すれば完成です。