188 Глава б. Настройка интерфейса
номер АТС 555 и номер 1234. Успешно установив соединение с удаленным
модемом, локальный модем отображает сообщение CONNECT. Команда wait
предписывает ожидать такого сообщения от модема.
Команда sleep 2 вставляет в сценарий двухсекундную задержку. Зачастую
бывает полезно сделать паузу перед регистрацией, чтобы позволить удален-
ному серверу инициализировать сеанс. Помните, что сообщение CONNECT
исходит от модема, а не от удаленного сервера. Удаленному серверу может
понадобиться выполнить ряд действий, прежде чем он будет готов прини-
мать данные. Небольшая задержка позволяет избежать появления необъяс-
нимых, невоспроизводимых ошибок.
Команда send передает второй стороне символ возврата каретки
(\г).
Когда
установлено модемное соединение, все данные, передаваемые локальной сис-
темой, попадают напрямую в удаленную систему. Команда send позволяет пе-
редать любую строку. В нашем примере удаленный сервер должен получить
символ возврата каретки, прежде чем отобразит первое приглашение. Сим-
вол возврата каретки записывается как \г, а символ новой строки - как \п.
Удаленный сервер отображает приглашение Login>, предлагая указать имя
пользователя. Команда wait ogin> позволяет обнаружить это приглашение, а
команда send kristin передает в ответ имя пользователя, kristin. Сервер за-
прашивает пароль, отображая приглашение Passwords Команда password пред-
лагает локальному пользователю набрать пароль вручную. Пароль может
храниться в команде send сценария, но такой способ потенциально опасен -
если неуполномоченное лицо получит доступ к сценарию, оно получит доступ
и к паролю. Команда password призвана повысить уровень безопасности.
Если пароль принят, удаленный сервер из нашего примера предлагает на-
чать работу, отображая символ «больше» (>). Многие серверы требуют вы-
полнения определенных команд, указывающих корректный режим работы.
Сервер из нашего примера поддерживает несколько протоколов, так что мы
должны предписать ему использование РРР, передав соответствующую ко-
манду при помощи send.
Завершается сценарий рядом команд, выполняющих настройку среды ло-
кального узла. Команда mode предписывает локальному узлу использовать
протокол РРР для работы с этим каналом. Выбранный протокол должен со-
ответствовать протоколу удаленного сервера. Существуют следующие значе-
ния протоколов для команды dip mode: SLIP, CSLIP, РРР и TERM. SLIP и
CSLIP - это варианты протокола SLIP, о котором мы уже говорили. TERM -
режим эмуляции терминала. РРР - протокол Point-to-Point (точка-точка).
Наконец, команда exit завершает работу сценария, тогда как dip продолжа-
ет работу в фоновом режиме и обслуживает канал.
Этот простой сценарий действительно работает и дает полное представление
о структуре ожидание/передача сценария dip. Однако ваши сценарии, веро-
ятно, будут не столь простыми. Описанный сценарий неустойчив, поскольку
не реализует проверку ошибок. Не получив ожидаемого ответа, сценарий
просто повисает. Для решения проблемы можно воспользоваться интерва-