BATCHER(8)

名前
batcher - InterNetNews 用バッチ設定

形式
batcher [ -a arts ] [ -A total_arts ] [ -b size ] [ -B total_size ] [ -i string ] [ -N num_batches ] [ -p process ] [ -r ] [ -s separator ] [ -S alt_spool ] [ -v ] host [ input ]

機能説明
batcher は指定した host への新しいバッチを用意するためにファイルリストを読み込みます。 通常 cron(8) から起動され shlock(1) を使用してそのホストについての処理をロックし、 ctlinnd(8) コマンドでバッチファイルをフラッシュするようなスクリプト — 通常は send-uucp — から起動されます。

batcher は、 input ファイルあるいはファイルが指定されていなければ標準入力からデータを読み込みます。 相対パスは /var/news/spool/out.going からのものとみなします。 入力データには各行にデータが書かれたものとみなします。 空行や ``#'' で始まる行は無視されます。 それ以外の行は一つのスペースで区切られる一つあるいは二つのフィールドで構成されなければいけません。 第一フィールドは記事を保持しているファイル名で、 絶対パスでなければニュースのスプールディレクトリ /var/news/spool/articles からの相対パスとみなします。 第二フィールドがあれば、記事の大きさのバイト数となります。

オプション

-S  ``-S'' オプションを使用すると、記事が見つからない場合の別のスプールディレクトリを指定することができます。 これは通常 expire までの期間が長めのサーバを NFS マウントしている場合のスプールディレクトリになるでしょう。

-r  デフォルトではこのコマンドは標準エラー出力を /var/log/news/errlog としています。 これに対して出力を行わないようにするには ``-r'' オプションを使用します。

-v  batcher が終了すると syslog(3) 経由で統計情報を報告します。 ``-v'' オプションを使用すると、標準出力にも出力します。

-b  batcher はバッチに記事を書き込んでいきます。 各バッチの大きさを制限するためには、``-b'' オプションを使用します。 デフォルトの制限値は 60 キロバイトです。 ``-b 0'' を使用するとバッチの大きさに制限は無くなります。

-a  バッチ中の記事の数を制限するためには、``-a'' オプションを使用します。 デフォルトでは制限はありません。 指定したバッチの大きさや記事の制限を越えると、新たなバッチに切り替わります。

-B  すべてのバッチに書き込まれる総バイト数を制限するためには、``-B'' オプションを使用します。

-A  すべてのバッチに書き込まれる総記事数を制限するためには、``-A'' オプションを使用します。

-N  バッチの総数を制限するためには、``-N'' オプションを使用します。

    上記三つのオプションについては、デフォルトは 0 で、これは制限が無いということになります。

-i string
    バッチは受信側で使用する unpack の方法を指定する識別行で始まります。 ``-i'' オプションを使用すると、初期化文字列である string に改行が続き、それが各バッチの先頭に出力されます。 デフォルトでは、初期化文字列はありません。

-s  各記事は記事の大きさを示す区切り行で始まります。 区切り行の文字列の内容を指定するためには、``-s'' オプションを使用します。 これは sprintf(3) 形式の文字列となっていて、記事の大きさを示す ``%ld'' というパラメータを一つのみ使用することができます。 このオプションで指定した区切り行の文字列が空でなければ、 その文字列と改行が各記事の前に書き出されます。 デフォルトの区切り行は ``#! rnews %ld'' です。

-p  デフォルトでは、バッチの内容は標準出力に書かれますが、 これは二つ以上のバッチを作成する場合には意味がありません。 ``-p'' オプションを使用すると、新たなバッチが始まると( popen(3) 経由で)起動されるシェルコマンドを指定することができます。 この処理は sprintf での形式文字列となっていて、ホスト名を示す ``%s'' というパラメータは一つのみ使用できます。 通常使用される値としては次のものになります。

    ( echo '#! cunbatch' ; exec compress ) | uux - -r -z %s!rnews

終了ステータス

入力がなくなれば、 batcher は 0 で終了します。 ``-B''、``-A''、``-N'' オプションで指定したいずれかの制限値になるか、 バッチの書き込みがエラーになると、 batcher は入力データをスプールに書き込もうとしてファイルにコピーします。 入力ファイルが無い場合、標準入力からのデータを /var/news/spool/out.going/host にコピーし、終了します。 入力ファイル名が指定されていれば、( input が絶対パスであれば) input.bch というテンポラリファイルか、(ファイル名がスラッシュで始まっていなければ) /var/news/spool/out.going/input.bch に作成されます。 入力データがコピーされれば、 batcher はこのテンポラリなファイルを入力ファイル名にリネームし、終了します。

SIGINT か SIGTERM のシグナルを受けると、 batcher はカレントなバッチへの記事の書き込みを終了し、バッチをクローズし、 先に説明したようにバッチファイルを書き換えます。

履歴
InterNetNews 用に Rich $alz <rsalz@uunet.uu.net> により記述されました。

関連項目
ctlinnd(8)、 newsfeeds(5)、 shlock(1)