gnspool について



gnspool は .newsrc *1 に従って未読の記事をローカルディスクに取り寄せる
ためのツールです。
gn の -s オプションと併せて使用すると、ニュースサーバと接続せずに
NetNews を読むことができます。

*1 .newsrc: ニュースグループ毎に既読の記事番号を管理しているファイル

仕組みは、、、

a) gnspool はニュースサーバと同様のディレクトリ/ファイル構成
   /usr/spool/news:
	NetNews の記事が納められているディレクトリ
   /usr/lib/news:
	NetNews の管理用のファイルが納められているディレクトリ
   をローカルマシン上に構築します。

                           .newsrc
      ニュースサーバ         |         ローカルマシン
   +--------------------+    V      +--------------------+
   | /usr/spool/news/〜 |  gnspool  | /usr/spool/news/〜 | 
   | /usr/lib/news/〜   | --------->| /usr/lib/news/〜   | 
   +--------------------+           +--------------------+

  NetNews を読んだことがない(.newsrc を持っていない)ユーザがいきなり 
  gnspool を使用すると、超大量の記事を取り寄せることになります。
  これは、時間的にもディスク容量的にも無理があります。
  gn をオンラインモードで使用し、ニュースサーバ上にあるニュースグルー
  プを調べ、必要のないニュースグループは
  ・u コマンドで unsubscribe(指定したニュースグループは読まない)にし
    ておく
  ・gnrc で UNSUBSCRIBE に指定する
  などの処理をおこなうことが必要です。
  これにより gnspool 実行時に必要な記事だけを取得するようになります。

b) ニュースリーダは上記作成されたディレクトリ/ファイルをあたかもニュー
   スシステムが作成したかのようにアクセスします。

      ニュースサーバ                   ローカルマシン
   +--------------------+           +--------------------+
   | /usr/spool/news/〜 |           | /usr/spool/news/〜 | 
   | /usr/lib/news/〜   |           | /usr/lib/news/〜   | 
   +--------------------+           +--------------------+
           |                                |
           |         <--- ほぼ同じ --->     |
           V                                V
     ニュースリーダ                   ニュースリーダ

   ニュースシステムを(NNTP を使用せずに)アクセスするように設定された
   ニュースリーダであれば、ニュースサーバをアクセスしているのと全く同
   じように NetNews を読むことが可能です。

c) ポストする際は、ニュースシステムがないので、ニュースリーダ標準の仕
   組み(通常 inews を使用)を使えません。

      ニュースサーバ                   ローカルマシン
   +--------------------+           +--------------------+
   | /usr/spool/news/〜 |           | /usr/spool/news/〜 | 
   | /usr/lib/news/〜   |           | /usr/lib/news/〜   | 
   +--------------------+           +--------------------+
           ^
           |
         inews                              X
           |                                |
     ニュースリーダ                  ニュースリーダ

   gn は -s オプションを付加することにより特別な仕組みを使ってポストし
   ます。
                                       ローカルマシン
                                    +--------------------+
                                    |   特別な仕組み  *1 |
                                    +--------------------+
                                            ^
                                            |
                                            |
                                          gn -s


   その他のニュースリーダに対しては擬似的にニュースシステムに見せかけ
   る仕組み(gninews)を提供しています。

                                       ローカルマシン
                                    +--------------------+
                                    |   特別な仕組み *1  |
                                    +--------------------+
                                            ^
                                            |
                                         gninews
                                            |
                                     ニュースリーダ

   「特別な仕組み」*1へポストがあると、gnspool はニュースサーバへ記事
   をポストします。

      ニュースサーバ                   ローカルマシン
   +--------------------+           
   | /usr/spool/news/〜 |  gnspool  +--------------------+
   | /usr/lib/news/〜   |<--------- |   特別な仕組み *1  |
   +--------------------+           +--------------------+

   *1 特別な仕組み:具体的には (/usr/spool/news/)news.out に一時的に蓄
      積します。

d) (リプライ)メイルもほぼ同様です。


gnspool は(多分)こんな使い方ができます (1)サブノートPCのHDに記事を落して持ち歩く 会社/学校でPCをネットワークに接続し gnspool を使ってPCのディスクに落し 自宅/出先で NetNews を読み書きすることができます。 (2)FD/MOで記事を自宅に持って帰る 会社/学校のネットワークに接続されているPC/WSで gnspool を使ってFD/MOに記事を落し そのFD/MOを自宅に持ち帰り、 自宅のPCで読み書きすることができます。 (3)回線速度が遅くて NNTP *1 経由で gn を使うと遅くて仕方がない gnspool を使ってローカルディスクに一時的に未読の記事を取り込み、 ローカルディスクの記事を読むことにより、素早く読むことができま す。 *1 NNTP: NetNews をやり取りするプロトコル (4)接続時間課金 *1 の回線 gnspool を使ってローカルディスクに一時的に未読の記事を取り込み、 ローカルディスクの記事を読むことにより、回線使用時間を短縮する ことができます。 *1 接続時間に応じた費用がかかる回線 InterNet Provider に PPP で接続している場合、 ・プロバイダに支払う費用(月額固定の場合を除く) ・公衆回線(NTT)に支払う費用 が必要となる (5)gnspool + GNUS(or other NewsReader) gnspool は /usr/lib/news/active *1 と /usr/spool/news *2 を作 ります。 一部制限がつきますが、gn 以外のニュースリーダ(GNUSなど)と組 み合わせて使うこともできます。 gnrc で購読するニュースグループを限定しておくと active には限 定されたニュースグループしか入りません。ニュースグループが多い ために GNUS の起動が遅くてたまらない場合にも、もってこいでしょ う。詳しくは docs.jp/gnspool/gnus を参照してください。 その外、mnews や WinVN などとも組み合わせて使用することが可能 です。 *1 /usr/lib/news/active: ニューススプールにある記事の番号を管 理しているファイル *2 /usr/spool/news: ニュースの記事ファイルを置いておくディレク トリ(ニューススプール) gnspool で取り寄せた spool は、個人の .newsrc に依存します。 よって、取り寄せた spool を複数で共有する目的には使えません。 共有したい場合にはニュースシステムをインストールするか、DNAS *1 を使わ れることをお勧めします。 *1 DNAS: 複数のニュースサーバをあたかも1台であるかのように見せる ツール **************重要******************* gnspool+nntpd, gnspool+Inn を使って gnspool で取寄せたニューススプール を共有する試みも公開されていますが、共有には十分注意してください。 ・ローカルニュースグループの意図しなかった範囲へ記事の流出 記事を取得するニュースサーバ(以下元サーバ)上にローカルなニュー スグループがある場合、そのニュースサーバから記事を取寄せ、さら に外部に公開すると、元サーバでは意図していなかった範囲からロー カルニュースグループが読めてしまいます。 例: 元サーバに omronsoft.confidential というニュースグルー プが存在しており、omronsoft.co.jp 内からのアクセスだけ が許可されていたとする。 omronsoft.co.jp 内のマシンで gnspool を使用し、このニュー スグループを取寄せ、公開した。この取寄せたマシンはアク セス制限をしていなかったため、Internet 上のすべてのマ シンから omronsoft.confidential というニュースグループ を参照できてしまった。 ・ローカルディストリビューションの意図しなかった範囲へ記事の流出 元サーバ上にローカルなディストリビューションがある場合、そのサー バから記事を取寄せ、さらに外部に公開すると、元サーバでは意図し ていなかった範囲から記事が読めてしまいます。 例: 元サーバの fj.test に Distribution: local で記事がポス トされた gnspool を使用し、この fj.test を取寄せたマシンは Distribution: を考慮せずに記事を転送した。 結果、Distribution: local な記事が外部に流出した。
以下、いろいろな使い方をもう少し詳しく記述します。 (1)サブノートPCのHDに記事を落して持ち歩く ドライブCがHDであると想定し、 c:\lib, c:\spool をニュース用に、 c:\home をホームディレクトリとして使用するものとします。 準備 ・c:\home に gnrc と newsrc を置きます。 これらは通常 gn で使用しているものです。 ・gnrc を修正します。 gnrc に /usr/lib/news に相当するディレクトリ /usr/spool/news に相当するディレクトリ の指定を追加します。 例: NEWSSPOOL c:\spool NEWSLIB c:\lib 各ディレクトリを作成します。 ・環境変数の設定 set HOME=c:\home を実行します。 初回の gnspool の実行(会社/学校にて) gnspool を実行します。 (1) c:\home\gnrc を読み込み (2) パスワードの入力 (3) c:\home\newsrc を読み込み (4) c:\lib\active と c:\spool 以下に記事を転送 が実行されます。 gn の実行(自宅/出先にて) gn -s を実行します。パスワードの入力がないこと以外は、通常の gn と全 く同じです。 ニューススプールとしてHDを使用すると、通常はHDのモータが回 りっぱなしとなり、出先の使用では電池が長持ちしません。 もしサブノートPCに RAM disk があり、かつ使わない時はHDDの モータを止める設定があるなら、gnrc に POWER_SAVE ON を書くと良 いでしょう。 POWER_SAVE ON を書くと、選択したニュースグループの記事を一時的 に TMPDIR にコピーし、読む時は TMPDIR をアクセスします。 TMPDIR に RAMDISK を用いることにより、HD へのアクセスを短時 間かつ一時期にかためておこなうため、記事を読んでいる間はモータ をOFFにすることが可能になり、電池を節約することが可能となり ます。当然ページャなども RAM disk におきます。 POWER_SAVE を define しても、記事を読む度にHDにアクセスする 場合は、 command.com はどこからロードされるか? shell=c:\command.com g:\ ... ~~~ ページャが使用するファイルは全部 RAM disk にあるか termcap, $HOME/xxxrc など カレントドライブは RAM disk か などをチェックして下さい。 ただし、TMPDIR の disk full には注意して下さい。SELECT_LIMIT を小さくしておくことを推奨します。 また大きなディスクキャッシュを持つ場合には、POWER_SAVE 2 とす ると良いでしょう。選択したニュースグループの記事は、選択された 時点で全て読出されディスクキャッシュ上にキャッシュされます。 実際に読むときには、キャッシュされたファイルにアクセスしますか ら、HDDのモータを止めることが可能です。 ポストした記事は NEWSSPOOL/news.out に、 リプライしたメイルは NEWSSPOOL/mail.out に、 一時的に保管されます。 2回目以降の gnspool の実行(会社/学校にて) gnspool を実行します。 (1) c:\home\gnrc を読み込み (2) パスワードの入力 (3) c:\lib\newsrc を読み込み (4) ポスト/フォローした記事があれば nntpserver へ転送 (5) リプライメイルがあれば smtpserver へ転送 (6) 既読の記事をc:\spool 以下から消去 (7) c:\lib\active と c:\spool 以下に記事を転送 が実行されます。 この利用形態の亜流(?)として、 五十嵐@富士ゼロックス(igarashi@q.ksp.fujixerox.co.jp)どのは、 WS 上で gnspool を実行し未読記事を取り寄せ、それを HP100LX に転送し ネットワーク無しの gn で利用されているそうです。
(2)FD/MOで記事を自宅に持って帰る ネットワークに接続されているPCのドライブAのFDで持ち帰ると想定して 説明します。 WS+mtools などでも同様のことができます。(3)(4)を参照下さい。 準備 ・a:\ に gnrc と newsrc を置きます。 これらは通常 gn で使用しているものです。 ・gnrc を修正します。 gnrc に /usr/lib/news に相当するディレクトリ /usr/spool/news に相当するディレクトリ の指定を追加します。 例: NEWSSPOOL a:\spool NEWSLIB a:\lib 各ディレクトリを作成します。 ・環境変数の設定 set HOME=a:\ を実行します。 初回の gnspool の実行(会社/学校にて) gnspool を実行します。 (1) a:\gnrc を読み込み (2) パスワードの入力 (3) a:\newsrc を読み込み (4) a:\lib\active と a:\spool 以下に記事を転送 が実行されます。 gn の実行(自宅にて) gn -s を実行します。パスワードの入力がないこと以外は、通常の gn と全 く同じです。 ポストした記事は NEWSSPOOL/news.out に、 リプライしたメイルは NEWSSPOOL/mail.out に、 一時的に保管されます。 2回目以降の gnspool の実行(会社/学校にて) gnspool を実行します。 (1) a:\gnrc を読み込み (2) パスワードの入力 (3) a:\newsrc を読み込み (4) ポスト/フォローした記事があれば nntpserver へ転送 (5) リプライメイルがあれば smtpserver へ転送 (6) 既読の記事をa:\spool 以下から消去 (7) a:\lib\active と a:\spool 以下に記事を転送 が実行されます。
(3)回線速度が遅くて NNTP 経由で gn を使うと遅くて仕方がない (4)接続時間課金の回線 unix マシンを使用し、 $HOME/lib, $HOME/spool をニュース用に使用するものとします。 同様の方法にて、ノートPCにインストールした 386BSD などで、持ち出すこ とも可能です。 準備 ・$HOME に .gnrc と .newsrc を置きます。 これらは通常 gn で使用しているものです。 ・gnrc を修正します。 gnrc に /usr/lib/news に相当するディレクトリ /usr/spool/news に相当するディレクトリ の指定を追加します。 例: NEWSSPOOL $HOME/spool NEWSLIB $HOME/lib 各ディレクトリを作成します。 初回の gnspool の実行 gnspool を実行します。 (1) $HOME/.gnrc を読み込み (2) $HOME/.newsrc を読み込み (3) $HOME/lib/active と $HOME/spool 以下に記事を転送 が実行されます。 gn の実行 gn -s を実行します。通常の gn と全く同じです。 ポストした記事は NEWSSPOOL/news.out に、 リプライしたメイルは NEWSSPOOL/mail.out に、 一時的に保管されます。 2回目以降の gnspool の実行 gnspool を実行します。 (1) $HOME/.gnrc を読み込み (2) $HOME/.newsrc を読み込み (3) ポスト/フォローした記事があれば nntpserver へ転送 (4) リプライメイルがあれば MAILER を使って smtpserver へ転送 (5) 既読の記事を$HOME/spool 以下から消去 (6) $HOME/lib/active と $HOME/spool 以下に記事を転送 が実行されます。 -f オプションを付加して起動すると、接続時の未読記事数の計算が 高速になります。 大量(数千)のニュースグループを持っているニュースサーバにアク セスしているが、ごく一部しか購読していない ・gnrc で UNSUBSCRIBE に多くのグループを指定している ・多くのグループを「もう読まない(u)」している 場合に有効です。しかし、 ・gnrc に UNSUBSCRIBE がない ・ほとんどのグループを「もう読まない(u)」していない 場合には、かえって遅くなることもあります。 ただし、ニュースグループが増減しても対応できないため、少なくと も数回に1回は -f オプションを付加せずに起動することを推奨しま す。-f オプションは、あくまで at own risk でご利用ください。
(5)gnspool + GNUS(or other NewsReader) ノートPCにインストールした 386BSD などでニュースを持ち出し、GNUS を 使って読むことを想定します。 インストールなどは上記(3)(4)と同じです。個人で使うことを前提です から、NEWSSPOOL,NEWSLIB は、デフォルトの /usr/spool/news,/usr/lib/news で構わないでしょう。 gnrc に USE_HISTORY ON とすると、Cnews スタイルのヒストリを /usr/lib/news/history として作ります。ニュースリーダによっては、元記事 を参照したり、メッセージIDによる記事の指定が可能かも知れません。 GNUS に関しては docs.jp/gnspool/gnus を、 mnews に関しては docs.jp/gnspool/mnews を、 WinVN に関しては docs.jp/gnspool/winvn をご覧下さい。 Copyright (C) yamasita@omronsoft.co.jp Sep.10,1997 著作権は放棄しません。ただし、営利目的以外の使用/配布に制限は設けません。

オムロン ソフトウェア 技術開発部
山下 康成
yamasita@omronsoft.co.jp