L.SYS(5) — NEWS-OS Programmer’s Manual
名称
L.sys − UUCP リモートホスト記述ファイル
解説
L.sys ファイルは、UUCP デーモン uucico(8C) がリモートシステムに関する情報を得るために参照するものです。 L.sys には、リモートシステムに関するシステム名、適当な呼び出し時間帯、 電話番号、ログイン、パスワードが含まれています。従って、 L.sys は、UUCP 管理者によって所有される特権ファイルです。 このファイルにアクセスできるのは、管理者およびスーパーユーザだけです。
L.sys 内の各行は、1つのリモートホストに対する 1つの接続方法を記述し、 以下の形式になっています。
System Times Caller Class Device/Phone_Number [Expect Send]....
この 2つの項目は任意の数の空白あるいはタブによって区切ることができます。 ‘#’で始まる行はコメントです。長い行は、 その行末に‘\’を付けることによって継続させることができます。
最初の 5つのフィールド (System フィールドから Device/Phone_Number フィールドまで)は、モデムやネットワークなどのリモートホストへの 接続を行うために必要とされるハードウェア機構を指定します。 uucico は、 L.sys を最初のエントリから検索して、希望する System (システム)を見つけ出した後、 L-devices(5) ファイルをオープンして、同じ Caller (呼び出しデバイス)、 Class (クラス)、(利用可能なら) Device (デバイス)を備えた最初の利用可能なデバイスを検索します("利用可能な" とは、 そのデバイスが使用可能な状態にあり、かつ、 他に使用されていないということを意味するものです)。 uucico は、そのデバイスを使用して接続を試みます。その接続が行えない場合 (例えば、ダイヤラが通話中ビジー信号を受け取った場合)、 uucico は次の利用可能なデバイスを使用して接続を試みます。 その接続も失敗した場合には、 L.sys に戻って、同じ System (システム)の別の回線を探します。それでも回線が見つからなかった場合には、 uucico は接続をあきらめます。
System (システム)は、リモートシステムのホスト名です。 このシステムが UUCP を介して通信を行うマシンについては、 誰が誰を呼び出すかに関係なく、すべて記述されていなければなりません。 L.sys 内に記述されていないシステムには、接続が認められません。 機密保護上の理由から、このリストにローカルホスト名を 入れてはなりません。
Times (時間帯)には、この System に対する呼び出しが認められている曜日および 1日のうちの時間帯が コンマで区切られてリストされます。 通話料金が安くなる時間帯にのみ長距離電話をかけるよう制限したい場合など、 この Times (時間帯)フィールドが最もよく使用されます。 リストの項目は、次のように構成されます。
keywordhhmm-hhmm/grade;retry_time
ここでは keyword (キーワード)が必要とされ、次のいずれかを入力します。
Any すべての曜日のすべての時間帯です。
Wk すべての曜日です。さらに、 Mo、 Tu、 We、 Th、 Fr、 Sa、 Su を使用すれば、それぞれ月曜日から日曜日までの曜日を 自由に指定することができます。
Evening
夕方の通話料金が適用される時間帯、すなわち、 月曜から金曜までの 17 時から 08 時までと、土日の終日です。 Evening は Wk1700−0800,Sa,Su と同じです。
Night 夜間の通話料金が適用される時間帯、すなわち、 月曜から金曜までの 23 時から 08 時までと、土曜の終日、 ならびに日曜の 23 時から 17 時までです。 Night は Any2300−0800,Sa,Su0800−1700 と同じです。
NonPeak
Evening をわずかに修正したものです。これは、米国の X.25 回線の 割引料金時間帯に一致します。 月曜から金曜までの 18 時から 07 時までと、土日の終日です。 NonPeak (非時間帯)は Any1800−0700,Sa,Su と同じです。
Never 呼び出しを行いません。 System (システム)への呼び出しが禁止され、不可能となります。これは、 リモートシステムがローカルマシンを定期的に呼び出す場合に備えて、 ポーリングされる接続のために用意されています。 マシンの 1つがダイヤルインあるいはダイヤルアウトモデムの いずれかを備えていない場合、このフィールドが必要となります。
オプションの hhmm−hhmm (何時何分 〜 何時何分)サブフィールドは、 そのキーワードを修正する時間帯を提供します。 hhmm は、24 時間制の時刻と分(0000 から 2359 まで)を示します。 時間帯は、深夜 0 時をはさんで指定することが許され、 その場合でも指定どおりに機能します。 Evening、 NonPeak(非時間帯)、 Night の各キーワードの後に時間帯を指定しても、無効になります。
grade (等級)サブフィールドはオプションです。このフィールドのエントリは、 ‘/’(スラッシュ)と、接続の等級を示す 1つの文字 (0〜9、 A〜Z、 a〜z) から構成されます。これは、この grade 以上の等級を備えた要求だけがこの時間内に転送されるように指定します (要求あるいはジョブの等級は、要求あるいはジョブが uucp あるいは uux によってキューに入れられる場合に限って指定されます)。 伝統的に、メールは等級 C で発信され、ニュースは等級 d で、uucp コピーは等級 n で送られます。しかしながら、こうした規則に従わないサイトがあるため、 これは 100% 信頼できるものではありません。
retry_time (再試行時間)サブフィールドはオプションです。このエントリは、 その先頭に‘;’(セミコロン)が付けられ、 失敗した接続の再試行が可能である時間を分単位で指定します (この制限は、他の諸々の制約に加えて、 Time フィールドの残りの部分(grade や時間帯)からくるものです。 デフォルトでは、再試行時間は、10 分から開始し、 26 回目の再試行の後(最大再試行回数)に uucico が接続を完全にあきらめるまで、失敗が重ねられるに従って徐々 に増加していきます。再試行時間が短すぎる場合、 uucico はすぐに MAX RETRIES(最大試行回数)を終えてしまいます。
Caller (呼び出しデバイス)は、使用されるデバイスの種類です。
ACU Hayes 社の Smartmodem 1200 や Novation 社の“Smart Cat”など の自動呼び出しデバイスあるいは自動ダイヤリングモデムです。 サポートされるモデムのリストについては、 L-devices の項を参照してください。
DIR 直接接続;リモートシステムへのハードウェア回線(普通は RS−232)。
MICOM
Micom Terminal スイッチ。
PAD X.25 PAD 接続。
PCP GTE Telenet PC Pursuit。構成に関する詳細については、 L-devices の項を参照してください。
SYTEK Sytek 高速専用モデムポート接続。
TCP バークレーの TCP/IP あるいは 3Com 社の UNET 接続。 この 2つは互いに排他的なものです。必要とされる情報はすべて L.sys 内に含まれているため、TCP ポートは L-devices 内にエントリを必要としません。複数の代替ポートあるいはネットワーク接続を 記述する時は、複数の L.sys エントリを使用してください。
Class (クラス)は普通、デバイスの速度(ボーレイト)であり、一般に、 ACU デバイスの場合には、300、1200、あるいは 2400 になり、 直接接続の場合には 9600 になります。有効な値は、デバイスによって異なり、 L-devices ファイル内に指定されます。
一部のデバイスについては、転送速度の前に非数値プレフィックス を付けます。このプレフィックスは、同じ Caller (呼び出しデバイス)および転送速度を備えていながら明らかに異なる 複数のデバイスを区別するために、 L-devices において使用されます。例えば、“1200”は、Bell 212 に互換性のある すべてのモデムを指しますが、 “V1200”とした場合には 1200 ボーの Racal-Vadic モデムを、 “C1200”とした場合には 1200 ボーの CCITT モデムを指します。
TCP 接続に関しては、クラスはポート番号(整数)になるか、あるいは、 この接続に使用される /etc/services ファイル内のポート名になります。標準的なバークレー TCP/IP については、 UUCP は通常、540 というポート番号を使用します。 Device/Phone_Number (デバイスおよび電話番号)は、 Caller (呼び出しデバイス)フィールドによって異なります。 ACU デバイスにおいては、電話番号になります。この番号には、 0 から 9 までの数字、# および ∗(こうした記号をトーン電話回線において ダイヤルするためのもの)、わずかの間(普通は 2秒から 4秒間)休止を するための‘−’(ハイフン)、 (多くのモデムにおいて休止として実行される)次のダイヤル音を待つための ‘=’(等号)を含めることができます。 他の文字はモデムによって異なります。 一般に、標準的な電話番号区切り文字(スラッシュや括弧など)は無視されます。 ただし、 uucico はこれを保証しません。
電話番号の前には、アルファベットの文字列を付けることができ、 その文字列は索引が付けられ、 L-dialcodes(5) ファイルによって変換されます。
DIR デバイスの場合、 Device/Phone_Number (デバイスおよび電話番号)フィールドは、接続を行うために用いられる、 /dev 内のデバイス名を含んでいます。 L-devices 内には、同じ Caller (呼び出しデバイス)、 Class (クラス)、 Device (デバイス)フィールドを備えた、対応する行が存在しなければなりません。
TCP および他のネットワークデバイスについては、 Device/Phone_Number (デバイスおよび電話番号)はリモートシステムの本当のネットワーク 名を備えます。この名前は、(そうならないことが望まれますが) おそらく UUCP 名とは異なるものになります。
Expect および Send は、それぞれ、物理接続が完了した後に、リモートシステムへの ログインを行う際に期待(expect)すべきものおよび発信(send) すべきものを指定する、任意の長さの文字列セットです。 expect/send 文字列の完全なセットは、 expect/send script と呼ばれます。 L-devices においても、接続を行う前にダイヤラとの対話を行う目的で同じ 形式が使用されます。 L-devices においては、 chat script と呼ばれます。1組の expect と send の完全なフォーマットは、次の通りです。
expect−timeout−send−expect−timeout send
expect および send は文字列です。 expect はリモートホストからの入力テキストと比較され、 expect が一致した時には、 send が送り返されます。デフォルトでは、 send の後には‘\r’(復帰文字)が付けられます。 expect 文字列が timeout (タイムアウト)時間内(デフォルト値は 45 秒以内)に一致しなかった場合には、 その照合が失敗したものとみなされます。 ‘expect-send-expect’ の表示は、制限付きのループ機構を提供します。最初の expect 文字列が一致しなかった場合には、ハイフンにはさまれている send 文字列が転送され、 uucico は次の expect 文字列を待ちます。これは、無限に繰り返すことができます。最後の expect 文字列が照合の結果一致しなかった場合には、 uucico は、回線を切り、その接続が失敗したことを記録します。
パラメータ ‘~nn’ (nn は秒単位のタイムアウト時間)を expect 文字列に付ける ことによって、(任意に)タイムアウト時間を指定することができます。
expect あるいは send 文字列内に組み込むことができるバックスラッシュ(\)エスケープ文字には、 次のものがあります。
\b10分の 3 秒間の BREAK(中断)を生成します。
\bnn は 1桁の数字であり、10 分の n 秒間の BREAK(中断)を生成します。
\csend 文字列の終わりの \ を抑制します。
\d遅延;1秒間の休止(Send のみ)。
\r復帰文字。
\sスペース。
\n改行。
\xxxxxxは 8進数の定数であり、対応する ASCII 文字を示します。
特別なケースとして、 expect 文字列内に空の 2重引用符“”を入れた場合、“expect nothing” と解釈されます。つまり、受信内容に関係なく send 文字列が転送されます。 send 文字列内に空の 2重引用符を入れた場合には、 単に‘\r’(復帰文字)だけが発信されます。
以下のキーワードの 1つを send 文字列の代わりに使用することができます。
BREAK10分の 3秒間の BREAK(中断)を生成します。
BREAKn10分の n 秒間の BREAK(中断)を生成します。
CR復帰文字を送ります(“”と同じ)。
EOT転送終了文字(EOF)、ASCII\004 を送ります。
これによって、たいていのホストが停止します。
NL改行文字を送ります。
PAUSE3 秒間の休止
PAUSEnn 秒間の休止
P_ODDそれより後の送信文字列に関して、奇数パリティを使用します。
P_ONEそれより後の送信文字列に関して、常にパリティ 1 を付けます。
P_EVENそれより後の送信文字列に関して、偶数パリティを使用します(デフォルト)。
P_ZEROそれより後の送信文字列に関して、常にパリティはなしです。
最後に、 expect 文字列に、キーワード ABORT が含まれている場合には、abort トラップを扱うことができます。 expect/send スクリプト全体の完了以前に abort 文字列が受信された場合、 uucico は、そのスクリプトがタイムアウトした時と同じようにアボートします。 これは、ポートセレクタあるいはフロントエンドプロセッサ から送られる("Host Unavailable"や "System is Down" などの) エラーメッセージをトラップする際に役立ちます。
例えば、
"" "" ogin:−−ogin: nuucp ssword: ufeedme
という文字列は次のように実行されます。
『リモートシステムが応答した場合、何も期待しない。復帰文字を送信する。 リモートシステムからは文字列‘ogin:’が転送されてくることを期待する。 リモートシステムが 45 秒以内に転送を行わなかった場合、 別の復帰文字を送信する。 最終的にリモートシステムが文字列の転送を行った時には、 そのシステムに‘nuucp’文字列を送信する。 その後、文字列‘ssword:’を期待し、 それが受信された時に、‘ufeedme’を送信する。』
関連ファイル
/etc/uucp/L.sys
関連事項
uucp(1C), uux(1C), L-devices(5), services(5), uucico(8C)
バグ
send/expect 内の“ABORT”(アボート)は他の表記とは“逆”に表現 されます。つまり、 “ABORT expect” ではなく、 “expect ABORT” と書かなければなりません。
send/expect 文字列内のバックスラッシュエスケープ文字には、 AT&T や Honey-Danber の UUCP によって使用されるバックスラッシュ エスケープ文字とは異なるものがあります。 例えば、この文字列内の‘\b’は BREAK(中断)を要求するものですが、 他のほとんどの場所では‘\b’はバックスペースを意味します。 タブの‘\t’および書式送りの‘\f’は実行されません。 ‘\s’はクラッジ(kludge)ですが、 引用符によって文字列を区切ることができる方がより便利でしょう。
NEWS-OSRelease 4.2.1R