Solaris のシステム管理 (資源管理とネットワークサービス)

UUCP Chat-Script フィールド

このフィールド (Login フィールドとも呼ばれます) には、chat スクリプトと呼ばれる文字列が入ります。chat スクリプトには、ローカルマシンとリモートマシンが対話の最初の時点で互いに受け渡ししなければならない文字が含まれています。chat スクリプトの形式は次のとおりです。

expect send [expect send] ....

expect は、対話を開始するために、ローカルホストがリモートホストから受信することを想定している文字列です。send は、ローカルホストが、リモートホストからの expect 文字列を受信した後で送信する文字列です。chat スクリプトには、複数の expect-send シーケンスを含めることもできます。

基本的な chat スクリプトには次の情報が含まれます。

expect フィールドは、次の形式のサブフィールドを持つことができます。

expect[-send-expect]...

-send は、その前の expect が正常に読み取れなかった場合に送られるものであり、send の後の -expect は、その次に送られてくると想定されている文字列です。

たとえば、login--login という文字列を指定した場合、ローカルホストの UUCP は login が送られてくることを想定します。リモートマシンから login を受信すると、UUCP は次のフィールドに進みます。login を受信しなかった場合は、キャリッジリターンを送信し、再度 login が送られてくるのを待ちます。ローカルコンピュータが、初期状態でどのような文字も想定していない場合は、expect フィールドで文字列 "" (NULL 文字列) を指定します。send 文字列が \c で終わっている場合を除き、send フィールドの送信の後には必ずキャリッジリターンが伴うという点に注意してください。

次に示すのは、expect-send 文字列を使用する Systems ファイルエントリの例です。


System-Name  Time  Type  Speed  Phone     Chat Script
sonora Any ACUEC 9600 2223333 "" \r \r ogin:-BREAK-ogin: Puucpx ssword: xyzzy

この例は、ローカルホストの UUCP に、2 個のキャリッジリターンを送ってから ogin: (Login: という場合もあるため) を待つように指示しています。 ogin: を受信しなかった場合は、BREAK を送ります。ogin: を受信した場合は、ログイン名 Puucpx を送ります。ssword: (Password: を表す)を受け取ったら、パスワード xyzzy を送ります。

表 40–2 に、便利なエスケープ文字をいくつか紹介します。

表 40-2 Systems ファイルの chat スクリプトで使用されるエスケープ文字
 エスケープ文字 意味

\b

バックスペース文字を送信または想定する 

\c

文字列の末尾で使用すると、普通なら送信されるキャリッジリターンが抑止される。その他の場合は無視される 

\d

後続の文字を送る前に 1 〜 3 秒の遅延が生じる 

\E

エコーチェックを開始する。これ以降は、1 文字送信するたびに、UUCP はその文字が受信されるまで待ち、その後、チェックを続行する 

\e

エコーチェックをオフにする  

\H

ハングアップを 1 回無視する。このオプションはコールバックモデム用に使用する 

\K

BREAK 文字を送信する 

\M

CLOCAL フラグをオンにする

\m

CLOCAL フラグをオフにする

\n

改行文字を送信または想定する 

\N

NULL 文字 (ASCII NUL) を送信する 

\p

約 1/4 秒間または 1/2 秒間、一時停止する 

\r

キャリッジリターンを送信または想定する 

\s

スペース文字を送信または想定する 

\t

タブ文字を送信または想定する 

EOT

EOT とそれに続く 2 個の改行文字を送信する 

BREAK

ブレーク文字を送信する 

\ddd

8 進数 (ddd) で表される文字を送信または想定する

Chat スクリプトを使用したダイアルバックの有効化

組織によっては、リモートコンピュータからの呼び出しを処理するダイアルインサーバーを設定する場合があります。たとえば、コールバックモデムを持つダイアルインサーバーを配備し、社員が自宅のコンピュータから呼び出せるようにすることができます。ダイアルインサーバーは、リモートマシンを識別すると、そのリモートマシンとのリンクを切断し、逆にそのリモートマシンを呼び出して、通信リンクが再確立されます。

Systems ファイルの chat スクリプトで、コールバックが必要な箇所で \H オプションを使用することにより、コールバックの操作を簡素化することができます。ダイアルインサーバーのハングアップが予想される箇所で、expect 文字列の一部として \H を使用します。

たとえば、ダイアルインサーバーを呼び出す chat スクリプトに、次のような文字列が含まれているとします。


INITIATED\Hogin:

ローカルホストの UUCP ダイアル機能は、ダイアルインサーバーから INITIATED という文字列を受け取ることを想定しています。INITIATED 文字列を受け取ると、ダイアル機能は、ダイアルインサーバーがハングアップするまで、その後受信するすべての文字をフラッシュします。またダイヤル機能は、expect 文字列のその次の部分、つまり ogin: という文字列がダイヤルインサーバーから送られてくるのを待ちます。ogin: を受け取ると、ダイヤル機能は chat スクリプトを先へ進めます。

上記のサンプルでは \H の前後に文字列が指定されていますが、これらはなくてもかまいません。