ニュースや電子メールの取り扱いを自動化するのも、Linux でなら簡単です。
最初のそしてもっとも大切な手続きは、プロバイダとの接続を確立するための書式で ある/usr/lib/ppp/ppp-on を作成することです。この書式には、次の一文しか記入さ れていないこともしばしばです。
/usr/sbin/pppd
さらに詳細な設定は /etc/ppp/options で行います。
connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript" crtscts modem defaultroute asyncmap 00000000 user dirk /dev/modem 38400
接続を終えるには、/usr/lib/ppp/ppp-off を用います。
上記二つの書式がきちんと機能することを確かめたら、今度は様々な処理を受け持つ 書式を作成することになります。電子メールを受信するための書式はすでに紹介しま した。この書式が /home/dirk/pop にちゃんとあるかどうかを確かめてください。
電子メールを交換するための書式は /root/mail に置きます。
#! /bin/sh # # 電子メイルの送受 # 10 分間で時間切れ TIMEOUT=600 DT=10 # 電子メールを送信: sendmail -q & # 電子メールを受信: su dirk -c /home/dirk/pop # sendmail が終了するのを待つ: t=0 while ! mailq | grep -q "Mail queue is empty"; do t=$[$t+$DT] if [ $t -gt $TIMEOUT ] ; then echo "sendmail -q timeout ($TIMEOUT).." exit 1 fi sleep $DT done exit 0
ニュースを送受するための書式の置場所は /usr/lib/news/news
です。
#!/bin/sh # # exchange news # must be run as news: cd /usr/lib/news #送付用バッチを更新 (C News): /usr/lib/newsbin/input/newsrun < /dev/null #ニュースの授受: /usr/lib/newsbin/newsx acme news.acme.net #受信バッチを更新: /usr/lib/newsbin/input/newsrun < /dev/null
いくつかの部分をつなぎあわせた書式を /root/news+mail
に置くこともで
き
ます。
#!/bin/sh # # exchange news and email # must be run as root # if ! /usr/lib/ppp/ppp-on; then exit 1 fi trap "/usr/lib/ppp/ppp-off" 1 2 3 15 #exchange news+mail: /root/mail & su news -c ~news/news wait #disconnect.. /usr/lib/ppp/ppp-off #update the incoming batch (C News): su news -c /usr/lib/newsbin/input/newsrun < /dev/null & exit 0
上の例は単に接続を確立するだけのものですが、これを拡張してニュースや電子メイ
ルがあった場合にこれの授受を行うようにするのは簡単です。/root/news+mail.cond
を呼び出すようにするだけなのです。その際、送信する
ニュース用のスプールを最新化することを忘れないように。
#!/bin/sh # # exchange news and email, only if outgoing news or mail # (C News spool) if [ -s /var/spool/news/out.going/acme/togo ] || ! ( mailq | grep -q "Mail queue is empty"); then /root/news+mail fi
後は上述の作業をいつ実施するのかを指定するだけです。これには crontab -e
という命令をルートとして実行します。以下の例は、ニュースと電子メイルの
授受を毎日朝七時に、その後四時間ごとに送信のみを行う場合の指定です。
00 7 * * * /root/news+mail 00 11,15,19,23 * * * /root/news+mail.cond
上述の各部品を組み合わせる前に、それぞれをしっかりと検査しておくべきです。別
のタスクを付け加える必要が生じるかもしれません。(時刻を一致させる
ntpdate
、手元で管理している WWW 、 FTP を使ってプロバイダ側のそれを
自動的に更新する make
と ftp
など)
代替案:効率によっては、プロセスを川下向きに変更することも可能です。PPP リン
クを確立する度に、/etc/ppp/ip-up
を起動すればいいのです。電子メイル
やニュースの授受を開始するには何らかの magic を付け加える必要があることもあ
るでしょう。
代替案:ネットワークトラフィックが成立している間ならいつでも PPP 接続を自動的 に確立することができます。これは様々な意味で優れた手法です。しかしながら、頻 繁に接続が起こらないように(費用が高くならないように)するには的確な設定が必要 です。詳細な情報は下記のところで入手できます。
http://www.dna.lth.se/ erics/diald.html
diald というユーティリティは以下のところから入手できます:
ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald-0.16.tar.gz
この場所には、PPP 接続に関する他の情報も集められています。