Книга: Linux Network Administrator Guide, Second Edition
The login chat
The login chat
We already encountered the login chat script, which tells uucico how to log in to the remote system. It consists of a list of tokens specifying strings expected and sent by the local uucico process. uucico waits until the remote machine sends a login prompt, then returns the login name, waits for the remote system to send the password prompt, and sends the password. Expect and send strings appear in alternation in the script. uucico automatically appends a carriage return character (r) to any send string. Thus, a simple chat script would look like:
ogin: vstout ssword: catch22
You will probably notice that the expect fields don't contain the whole prompts. This ensures that the login succeeds, even if the remote system transmits Login: instead of login:. If the string you are expecting or sending contains spaces or other white-space characters, you must use quotes to surround the text.
uucico also allows for some sort of conditional execution. Let's say the remote machine's getty needs to be reset before sending a prompt. For this, you can attach a subchat to an expect string, set off by a dash. The subchat is executed only if the main expect fails, i.e., a timeout occurs. One way to use this feature is to send a BREAK if the remote site doesn't display a login prompt. The following example gives a general-purpose chat script that should also work in case you have to press Enter before the login appears. The empty first argument, ", tells UUCP to not wait for anything, but to continue with the next send string:
"" nrdrnc ogin:-BREAK-ogin: vstout ssword: catch22
A couple of special strings and escape characters can occur in the chat script. The following is a partial list of characters legal in expect strings:
""
The empty string. It tells uucico to not wait for anything, but to proceed with the next send string immediately.
t
Tab character.
r
Carriage return character.
s
Space character. You need this to embed spaces in a chat string.
n
Newline character.
Backslash character.
On send strings, the following escape characters and strings are legal in addition to the above:
EOT
End of transmission character (^D).
BREAK
Break character.
c
Suppress sending of carriage return at end of string.
d
Delay sending for 1 second.
E
Enable echo checking. This requires uucico to wait for the echo of everything it writes to be read back from the device before it can continue with the chat. It is primarily useful when used in modem chats (which we will encounter later). Echo checking is off by default.
e
Disable echo checking.
K
Same as BREAK.
p
Pause for fraction of a second.
- Using chat to Automate Dialing
- How to Tell UUCP About Other Systems Using the sys File
- You Can Connect to the Remote Site, but the Chat Script Fails
- 4.4.4 The Dispatcher
- About the author
- Chapter 7. The state machine
- Appendix E. Other resources and links
- Example NAT machine in theory
- The final stage of our NAT machine
- Compiling the user-land applications
- The conntrack entries
- Untracked connections and the raw table