名 称
chat − モ デ ム 接 続 の 確 立 を 自 動 化 す る ス ク リ プ ト 言 語
書 式
chat [ options ] script
解 説
chat プ ロ グ ラ ム は コ ン ピ ュ ー タ と モ デ ム の 間 の メ ッ セ ー ジ 交 換 を 制 御 し ま す 。 こ の コ マ ン ド の 主 な 目 的 は 、 Point-to-Point Protocol デ ー モ ン (pppd) と リ モ ー ト の pppd プ ロ セ ス の 間 の 接 続 を 確 立 す る こ と で す 。
オ プ シ ョ ン
-f
<chat file> チ ャ ッ ト
ス ク リ プ ト を
chat file か ら 読 み
込 み ま す 。 こ
の オ プ シ ョ ン
と script パ ラ メ ー タ
と は 、 互 い に
排 他 の 関 係 に
あ り ま す 。 chat コ
マ ン ド を 実 行
す る ユ ー ザ は
、 こ の フ ァ イ
ル の リ ー ド ア
ク セ ス 権 を 持
っ て い な け れ
ば な り ま せ ん
。 こ の フ ァ イ
ル の 中 で は 、
文 字 列 の 区 切
り と し て ス ペ
ー ス と タ ブ を
使 う こ と が で
き ま す 。
-t <timeout> 文 字 列
の 受 信 待 ち の
タ イ ム ア ウ ト
を 指 定 し ま す
。 も し 、 タ イ
ム リ ミ ッ ト ま
で に 指 定 さ れ
た 文 字 列 を 受
信 で き な か っ
た 場 合 に は 、
応 答 文 字 列 の
送 信 を お こ な
い ま せ ん 。 こ
の 時 、 か わ り
の 応 答 文 字 列
が 指 定 さ れ て
い れ ば そ れ が
送 信 さ れ 、 指
定 さ れ て い な
け れ ば ス ク リ
プ ト の 実 行 が
失 敗 し ま す 。
ス ク リ プ ト の
実 行 が 失 敗 す
る と 、 chat プ ロ
グ ラ ム は 0 以 外
の エ ラ ー コ ー
ド を 返 し て 終
了 し ま す 。
-r <report file> レ ポ ー
ト 文 字 列 を 出
力 す る フ ァ イ
ル を 指 定 し ま
す 。 キ ー ワ ー
ド REPORT を 用 い る
と 、 結 果 の 文
字 列 が こ の フ
ァ イ ル に 出 力
さ れ ま す 。 こ
の オ プ シ ョ ン
を 指 定 せ ず に
REPORT キ ー ワ ー ド
を 使 用 す る と
、 レ ポ ー ト 文
字 列 は stderr に 出
力 さ れ ま す 。
-e エ コ ー オ プ シ ョ ン を 有 効 に し て 開 始 し ま す 。 |
chat ス ク リ プ ト の 特 定 の |
場 所 に お い て ECHO キ ー ワ ー ド に て エ コ ー の 有 効 お よ び 無 効 を 切 り 替 え る こ と が で き ま す 。 エ コ ー が 有 効 に さ れ る と 、 モ デ ム か ら の 出 力 は 全 て stderr へ エ コ ー さ れ ま す 。
-v |
chat ス ク リ プ ト を 冗 長 モ ー ド で 実 行 し ま す 。 こ れ を 指 定 す る と 、 chat プ ロ グ ラ ム は 、 チ ャ ッ ト ス ク リ プ ト の 実 行 状 態 、 モ デ ム か ら 受 信 し た 全 て の テ キ ス ト 、 モ デ ム に 送 っ た 全 て の テ キ ス ト の ロ グ を と り ま す 。 デ フ ォ ル ト で は syslogd(8) を 介 し て 取 得 し ま す 。 ロ グ の 方 法 は -S お よ び -s の フ ラ グ で 変 更 で き ま す 。 冗 長 ト レ ー ス の ロ グ と り は local2 フ ァ シ リ テ ィ の レ ベ ル info で お こ な わ れ 、 エ ラ ー に つ い て は レ ベ ル err が 使 わ れ ま す 。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-V |
chat ス ク リ プ ト を 標 準 エ ラ ー 出 力 冗 長 モ ー ド に て 実 行 す る よ う に 要 求 し ま す 。 chat プ ロ グ ラ ム は 、 モ デ ム か ら 受 信 す る 全 て の テ キ ス ト お よ び モ デ ム へ 送 信 す る 全 て の テ キ ス ト を 標 準 エ ラ ー 出 力 デ バ イ ス へ ロ グ し ま す 。 chat も し く は pppd プ ロ グ ラ ム を 動 作 さ せ て い る 場 所 で は 、 こ の デ バ イ ス は 通 常 ロ ー カ ル の コ ン ソ ー ル で す 。
標 準 エ
ラ ー 出 力 を 使
用 し ま す 。
’-v’ に よ る 全
ロ グ メ ッ セ ー
ジ お よ び 全 エ
ラ ー メ ッ セ ー
ジ を 標 準 エ ラ
ー 出 力 へ 送 ら
れ ま す 。 syslog(3) を 使 用 し ま せ ん 。 デ フ ォ ル ト で は エ ラ ー メ ッ セ ー ジ は syslog(3) へ 送 ら れ ま す 。 -S を 使 用 す る と ’-v’ に よ る ロ グ お よ び エ ラ ー メ ッ セ ー ジ は syslog(3) へ は 送 ら れ な く な り ま す 。 -T <phone
number> 送 信 文 字 列
に お い て \T 置 換
メ タ 文 字 を 置
き 換 え る 任 意
の 文 字 列 を 渡
し ま す 。 通 常
は 電 話 番 号 で
す 。
チ ャ ッ ト ス ク リ プ トchat ス ク リ プ ト に は 通 信 の 手 順 を 定 義 し ま す 。 ス ク リ プ ト は 一 つ ま た は そ れ 以 上 の 「 受 信 待 ち -送 信 」 文 字 列 の 組 か ら な り 、 そ れ ぞ れ は 空 白 で 区 切 ら れ て い ま す 。 オ プ シ ョ ン と し て 「 副 受 信 待 ち -副 送 信 」 文 字 列 の 組 を 追 加 す る こ と も で き 、 そ の 場 合 に は 以 下 の 例 の よ う に ダ ッ シ ュ で 区 切 り ま す : ogin:-BREAK-ogin: ppp ssword: hello2u2 こ れ に よ り 、 chat プ ロ グ ラ ム は 文 字 列 "ogin:" の 受 信 待 ち を お こ な い ま す 。 も し も タ イ ム ア ウ ト す る 前 に ロ グ イ ン プ ロ ン プ ト を 受 信 で き な け れ ば 、 リ モ ー ト ホ ス ト に ブ レ ー ク 信 号 を 送 信 し 、 そ れ か ら 文 字 列 "ogin:" を 受 信 待 ち し ま す 。 も し も 最 初 の "ogin:" が 受 信 で き て い れ ば 、 ブ レ ー ク 信 号 は 送 信 さ れ ま せ ん 。 一 旦 ロ グ イ ン プ ロ ン プ ト を 受 信 す る と 、 chat プ ロ グ ラ ム は 文 字 列 ppp を 送 信 し て 、 プ ロ ン プ ト "ssword:" の 受 信 を 待 ち ま す 。 パ ス ワ ー ド プ ロ ン プ ト を 受 信 す る と 、 chat プ ロ グ ラ ム は パ ス ワ ー ド hello2u2 を 送 信 し ま す 。 応 答 文 字 列 に 続 い て 、 通 常 は キ ャ リ ッ ジ リ タ ー ン 文 字 が 送 ら れ ま す 。 「 受 信 待 ち 」 文 字 列 中 で は 、 \r 文 字 シ ー ケ ン ス で 明 示 的 に 指 定 し な い か ぎ り 、 キ ャ リ ッ ジ リ タ ー ン は 文 字 列 に 含 ま れ ま せ ん 。 目 的 の 文 字 列 を 識 別 す る の に 必 要 な 部 分 だ け を 受 信 待 ち 文 字 列 に 指 定 す る よ う に す る べ き で す 。 な ぜ な ら 、 受 信 待 ち 文 字 列 は 通 常 デ ィ ス ク フ ァ イ ル に 記 録 さ れ る た め 、 動 的 に 変 化 す る 情 報 を 含 む こ と が で き な い か ら で す 。 一 般 に は 、 時 刻 を 表 す 文 字 列 や ネ ッ ト ワ ー ク ID 文 字 列 そ の 他 の 変 化 す る デ ー タ の 塊 を 受 信 待 ち さ せ る こ と は で き ま せ ん 。 通 信 の 初 期 段 階 で は 、 文 字 が 化 け て 受 信 さ れ る 場 合 が あ り ま す 。 こ の 場 合 に も 正 し く 認 識 が で き る よ う に 、 文 字 列 "login:" で は な く "ogin:" を 待 つ よ う に し ま す 。 仮 に 最 初 の "l" と い う 文 字 が 化 け て 受 信 さ れ た と し ま す と 、 リ モ ー ト シ ス テ ム が "login:" を 送 信 し た と し て も 、 そ の 文 字 列 は 認 識 さ れ な い こ と に な り ま す 。 こ の た め 、 ス ク リ プ ト で は "login:" で は な く "ogin:" を 、 "password:" で は な く "ssword:" を 待 つ よ う に し ま す 。 非 常 に 単 純 な ス ク リ プ ト は 、 以 下 の よ う に な る で し ょ う : ogin: ppp ssword: hello2u2 言 い か え る と 、 ....ogin: を 受 信 待 ち し て ppp を 送 信 し 、 ...ssword: を 受 信 待 ち し て hello2u2 を 送 信 す る と い う こ と に な り ま す 。 現 実 問 題 と し て は 、 単 純 な ス ク リ プ ト が 使 わ れ る こ と は ほ と ん ど な い で し ょ う 。 少 な く と も 、 最 初 の 受 信 待 ち 文 字 列 が 受 信 で き な か っ た 場 合 に 、 副 受 信 待 ち 文 字 列 を 実 行 す る よ う に す る べ き で し ょ う 。 た と え ば 、 以 下 の ス ク リ プ ト を 考 え て み ま す : ogin:--ogin: ppp ssword: hello2u2 こ れ は 以 前 に 使 っ た 単 純 な も の よ り も 良 い ス ク リ プ ト で し ょ う 。 以 前 の も の と 同 様 に login: プ ロ ン プ ト を 待 ち ま す が 、 も し 受 信 で き な か っ た 場 合 に は リ タ ー ン を 一 つ 送 っ て か ら 再 び login: が 送 ら れ て く る の を 待 ち ま す 。 最 初 の ロ グ イ ン プ ロ ン プ ト が ラ イ ン ノ イ ズ に よ っ て 化 け た と し て も 、 空 行 が 送 ら れ る こ と で 、 通 常 は も う 一 度 ロ グ イ ン プ ロ ン プ ト が 送 信 さ れ ま す 。 コ メ ン トコ メ ン ト を chat ス ク リ プ ト 中 に 埋 め 込 む こ と が 可 能 で す 。 コ メ ン ト は # (ハ ッ シ ュ ) 文 字 を カ ラ ム 1 か ら 開 始 す る 行 で す 。 こ の よ う な コ メ ン ト 行 は chat プ ロ グ ラ ム は 単 に 無 視 し ま す 。 「 受 信 待 ち 」 文 字 列 の 最 初 の 文 字 が ’#’ 文 字 の 場 合 、 「 受 信 待 ち 」 文 字 列 を ク ォ ー ト す る 必 要 が あ り ま す 。 文 字 # (ハ ッ シ ュ )か ら 始 ま る プ ロ ン プ ト を 待 ち た い 場 合 に は 、 以 下 の よ う に 書 か ね ば な ら な い で し ょ う : # Now wait for
the prompt and send logout string 中 断 文 字 列多 く の モ デ ム は ダ イ ヤ ル の 結 果 を 文 字 列 と し て レ ポ ー ト し ま す 。 こ れ ら の 文 字 列 は CONNECTED だ っ た り 、 NO CARRIER や BUSY だ っ た り す る で し ょ う 。 モ デ ム が 相 手 と の 接 続 に 失 敗 し た 場 合 に は 、 ス ク リ プ ト を 終 了 さ せ た い と 思 う こ と が よ く あ る で し ょ う 。 問 題 は 、 ど の 文 字 列 を 次 に 受 信 す る か と い う こ と を 、 ス ク リ プ ト が 正 確 に 知 る こ と は で き な い と い う こ と で す 。 あ る 時 に は BUSY を 受 信 す る か も し れ ま せ ん が 、 次 に は NO CARRIER を 受 信 す る か も し れ ま せ ん 。 こ れ ら の 「 中 断 」 文 字 列 は 、 ABORT シ ー ケ ン ス に よ り ス ク リ プ ト 中 に 指 定 す る こ と が で き ま す 。 そ れ は 、 以 下 の 例 の よ う に ス ク リ プ ト に 指 定 し ま す : ABORT BUSY ABORT ’NO CARRIER’ ’’ ATZ OK ATDT5551212 CONNECT こ の シ ー ケ ン ス は 受 信 待 ち を お こ な い ま せ ん 。 そ れ か ら 文 字 列 ATZ を 送 信 し ま す 。 受 信 待 ち 文 字 列 は OK で す 。 OK を 受 信 す る と 、 電 話 を か け る た め に 文 字 列 ATDT5551212 を 送 信 し ま す 。 受 信 待 ち 文 字 列 は CONNECT で す 。 文 字 列 CONNECT を 受 信 す る と 、 ス ク リ プ ト の 残 り が 実 行 さ れ ま す 。 一 方 、 モ デ ム が 話 中 を 検 出 す る と 、 文 字 列 BUSY が 送 ら れ て 中 断 文 字 列 へ の 一 致 が 起 こ り ま す 。 こ の 一 致 が 起 き た こ と に よ り 、 ス ク リ プ ト は 失 敗 し ま す 。 も し も 文 字 列 NO CARRIER を 受 信 す る と 、 そ れ は 同 じ 理 由 で 中 断 さ れ ま す 。 ど ち ら の 文 字 列 が 受 信 さ れ て も 、 chat ス ク リ プ ト は 終 了 し ま す 。 CLR_ABORT 文 字 列こ の シ ー ケ ン ス は 以 前 に 設 定 し た ABORT 文 字 列 を ク リ ア し ま す 。 ABORT 文 字 列 は 規 定 サ イ ズ (コ ン パ イ ル 時 に 決 定 )の 配 列 に 保 持 さ れ ま す ; CLR_ABORT は ク リ ア さ れ た エ ン ト リ の 領 域 を 再 要 求 し 、 新 た な 文 字 列 を そ こ に 格 納 で き る よ う に し ま す 。 SAY 文 字 列SAY デ ィ レ ク テ ィ ブ に て 、 script が 標 準 エ ラ ー 出 力 を 介 し て ユ ー ザ 端 末 ヘ 文 字 列 を 送 る こ と が で き ま す 。 chat が pppd か ら 起 動 さ れ る 場 合 、 pppd は デ ー モ ン と し て 実 行 さ れ (制 御 端 末 か ら 切 り 離 さ れ )、 標 準 エ ラ ー 出 力 は 通 常 /etc/ppp/connect-errors へ と リ ダ イ レ ク ト さ れ ま す 。 SAY 文 字 列 は 、 シ ン グ ル ク ォ ー ト も し く は ダ ブ ル ク ォ ー ト に て 括 る 必 要 が あ り ま す 。 出 力 中 に キ ャ リ ッ ジ リ タ ー ン お よ び ラ イ ン フ ィ ー ド が 必 要 な 場 合 、 明 示 的 に 文 字 列 中 に 含 め る 必 要 が あ り ま す 。 SAY 文 字 列 を 使 用 し て script の 進 捗 状 況 メ ッ セ ー ジ を 表 示 す る こ と で 、 ’ECHO OFF’ し つ つ も ユ ー ザ に な に が 起 っ て い る の か 示 す こ と が 可 能 で す 。 例 を 示 し ま す : ABORT BUSY Dialling your
ISP... レ ポ ー ト 文 字 列レ ポ ー ト 文 字 列 は ABORT 文 字 列 に 似 て い ま す 。 違 う の は 、 そ の 文 字 列 自 身 と キ ャ リ ッ ジ リ タ ー ン 等 の 次 の 制 御 文 字 ま で の 全 て の 文 字 が レ ポ ー ト フ ァ イ ル に 書 か れ る と い う こ と で す 。 レ ポ ー ト 文 字 列 は モ デ ム の コ ネ ク ト 文 字 列 の 転 送 レ ー ト と chat ユ ー ザ へ の リ タ ー ン 値 を 切 り わ け る た め に 使 え ま す 。 レ ポ ー ト 文 字 列 ロ ジ ッ ク の 分 析 は 、 受 信 待 ち 文 字 列 の 検 索 な ど の 他 の 文 字 列 処 理 と 同 時 に お こ な わ れ ま す 。 レ ポ ー ト 文 字 列 と 中 断 文 字 列 に 同 じ 文 字 列 を 使 用 す る こ と も 可 能 で す が 、 お そ ら く あ ま り 使 い 道 が な い で し ょ う 。 レ ポ ー ト 文 字 列 は プ ロ グ ラ ム の 終 了 コ ー ド に 影 響 を 及 ぼ し ま せ ん 。 こ れ ら の 「 レ ポ ー ト 」 文 字 列 は 、 REPORT シ ー ケ ン ス に よ り ス ク リ プ ト 中 に 指 定 す る こ と が で き ま す 。 そ れ は 、 以 下 の 例 の よ う に ス ク リ プ ト に 指 定 し ま す : REPORT CONNECT ABORT BUSY ’’ ATDT5551212 CONNECT ’’ ogin: account こ の シ ー ケ ン ス は 受 信 待 ち を お こ な わ ず 、 文 字 列 ATDT5551212 を 送 信 し て 電 話 を か け ま す 。 受 信 待 ち 文 字 列 は CONNECT で す 。 文 字 列 CONNECT を 受 信 す る と 、 ス ク リ プ ト の 残 り が 実 行 さ れ ま す 。 さ ら に 、 文 字 列 "CONNECT" と 、 そ れ に 続 く 接 続 レ ー ト な ど の 任 意 の 文 字 が レ ポ ー ト フ ァ イ ル に 記 録 さ れ ま す 。 CLR_REPORT 文 字 列こ の シ ー ケ ン ス を 使 用 し て 、 以 前 に 設 定 し た REPORT 文 字 列 を ク リ ア で き ま す 。 REPORT 文 字 列 は 規 定 サ イ ズ (コ ン パ イ ル 時 に 決 定 )の 配 列 に 保 持 さ れ ま す ; CLR_REPORT は ク リ ア さ れ た エ ン ト リ の 領 域 を 再 要 求 し 、 新 た な 文 字 列 を そ こ に 格 納 で き る よ う に し ま す 。 エ コ ーエ コ ー オ プ シ ョ ン は モ デ ム か ら の 出 力 を stderr へ エ コ ー す る か 否 か を 制 御 し ま す 。 こ の オ プ シ ョ ン を -e オ プ シ ョ ン に て 設 定 す る こ と が で き ま す し 、 ECHO キ ー ワ ー ド に て 制 御 す る こ と も で き ま す 。 「 受 信 待 ち -送 信 」 文 字 列 の 組 ECHO ON は エ コ ー を 有 効 に し 、 ECHO OFF は 無 効 に し ま す 。 こ の キ ー ワ ー ド を 使 用 し て ど の 会 話 を 見 せ る か を 選 択 可 能 で す 。 例 え ば 以 下 の script で は : ABORT
’BUSY’ 回 線 切 断HANGUP オ
プ シ ョ ン は モ
デ ム の 回 線 切
断 を エ ラ ー と
扱 う か 否 か を
制 御 し ま す 。
こ の オ プ シ ョ
ン は 、 シ ス テ
ム に ダ イ ヤ ル
後 に 回 線 切 断
し コ ー ル バ ッ
ク す る script 中 で 有
効 で す 。 HANGUP オ プ
シ ョ ン は ON も
し く は OFF に で
き ま す 。 ABORT
’BUSY’ タ イ ム ア ウ トタ イ ム ア ウ ト の 初 期 値 は 45 秒 で す 。 こ れ は -t パ ラ メ ー タ に よ り 変 更 す る こ と が で き ま す 。 次 に 受 信 待 ち す る 文 字 列 の タ イ ム ア ウ ト 値 を 変 更 す る に は 、 以 下 の よ う に し ま す : ATZ OK ATDT5551212 CONNECT TIMEOUT 10 ogin:--ogin: TIMEOUT 5 assword: hello2u2 こ れ は login: プ ロ ン プ ト を 受 信 待 ち す る 際 の タ イ ム ア ウ ト を 10 秒 に 変 更 し ま す 。 さ ら に password プ ロ ン プ ト を 受 信 待 ち す る 際 に は タ イ ム ア ウ ト を 5 秒 に 変 更 し ま す 。 一 旦 タ イ ム ア ウ ト 値 が 変 更 さ れ る と 、 次 に 変 更 さ れ る ま で は そ の ま ま に な り ま す 。 EOT の 送 信チ ャ ッ ト プ ロ グ ラ ム は 特 殊 な 応 答 文 字 列 EOT に よ り 、 リ モ ー ト 側 へ EOT 文 字 を 送 信 し ま す 。 通 常 、 こ れ は フ ァ イ ル 終 了 を 表 す 文 字 で す 。 EOT に 続 け て リ タ ー ン 文 字 が 送 ら れ る こ と は あ り ま せ ん 。 ^D シ ー ケ ン ス を 使 っ て EOT を 送 信 文 字 列 に 埋 め 込 む こ と が で き ま す 。 ブ レ ー ク の 生 成特 殊 な 応 答 文 字 列 BREAK に よ り 、 ブ レ ー ク 信 号 が 送 ら れ ま す 。 ブ レ ー ク は 送 信 側 で は 特 殊 な 信 号 と し て 扱 わ れ ま す 。 受 信 側 で は 通 常 、 転 送 レ ー ト の 変 更 要 求 と し て 処 理 さ れ ま す 。 こ れ に よ り 、 正 常 に login プ ロ ン プ ト を 受 信 で き る ま で ブ レ ー ク 信 号 を 送 る こ と で 、 リ モ ー ト 側 が サ ポ ー ト し て い る 転 送 レ ー ト を 順 次 切 り 替 え さ せ る こ と が で き ま す 。 \K シ ー ケ ン ス を 使 っ て ブ レ ー ク 信 号 を 送 信 文 字 列 に 埋 め 込 む こ と が で き ま す 。 エ ス ケ ー プ シ ー ケ ン ス受 信 待 ち 文 字 列 と 応 答 文 字 列 に は 、 エ ス ケ ー プ シ ー ケ ン ス を 指 定 す る こ と が で き ま す 。 応 答 文 字 列 で は 、 全 て の エ ス ケ ー プ シ ー ケ ン ス が 使 え ま す 。 受 信 待 ち 文 字 列 で は 、 ほ と ん ど の エ ス ケ ー プ シ ー ケ ン ス が 使 え ま す 。 受 信 待 ち 文 字 列 で は 使 え な い エ ス ケ ー プ シ ー ケ ン ス に つ い て は 、 説 明 文 中 に そ の こ と が 書 か れ て い ま す 。
hello\c は 単 に h, e, l, l, o と い う 文 字 だ け を 送 り ま す 。 (受 信 待 ち 文 字 列 で は 使 え ま せ ん )
|