Руководство администратора сети в ОС Linux




Набор номера с chat - часть 2


Опция -v делает caht log all activities к syslog daemon's local2 facility. (6)

Определение chat script на командной строке несет оправданный риск, потому что пользователи могут просматривать командную строку процессов с использованием ps команды. Вы можете избежать этого, помещая chat script в файл, скажем dial-c3po. Вы можете заставить chat прочесть script из файла вместо командной строки, давая ему опцию -f, сопровождаемой именем файла. Завершением колдовства над pppd теперь выглядело бы следующим образом:

# pppd connect "chat -f dial-c3po" /dev/cua3 38400 -detach \ crtscts modem defaultroute

6. Если Вы редактируете syslog.conf так, чтобы переназначить эти log сообщения к файлу, удостоверитесь, что этот файл не всемирно читаемый, так как chat также регестрирует введенный chat script по умолчанию - включая пароли и все.

Помимо соединяющейся опции, которая определяет dial-up script, мы добавили еще две опции к командной строке: - detach, которая сообщает рppd не отделяться от консоли и стать процессом предпосылки. Ключевое слово модема заставит его выполнить некоторые модем-определенные действия на последовательном устройстве, подобно "повесить трубку" прежде и после вызова. Если Вы не используете это ключевое слово, pppd не будет определять DCD линию, и будет не обнаруженна неожиданно.

Примеры, показанные выше были довольно просты; chct позволяет учитывать намного более комплексные chat script. Одна очень полезная особенность - способность к точному определению строки на которой можно прервать chat с ошибкой. Типичные аварийные строки - BUSY, или NO CARRIER, которые ваш модем обычно генерирует, когда вызываемый номер занят, или не поднимают трубку. Для того, чтобы сделать chat распознающим их немедленно, скорее быстрее чем выйдет время, Вы можете определить начало script, используя ключевое слово ABORT.

$ chat -v ABORT BUSY ABORT 'NO CARRIER' '' ATZ OK ...

В подобном режиме, Вы можете изменить значение блокировки по времени для частей chat scripts, вставляя TIME OUT опции. Для деталей, пожалуйста обратитесь к chat(8) справочника.

Иногда, вы может быть захотели бы иметь некоторый вид условного извлечения частей chat script. Например, когда Вы не получаете отдаленный end'slogin prompt, возможно Вы можете захотеть послать BREAK, или возврат каретки. Вы можете достичь этого, присоединяя sub-script к expect строке. Она состоит из последовательности send- и expect- строк, точно таких же как и полный script непосредственно, который отделен дефисами. Sub-script выполняется всякий раз, когда expected строка когда не было ничего получено. В примере изложенном выше, мы модифицировали бы chat script следующим образом:

ogin:-BREAK-ogin: ppp ssword: GaGariN

Теперь, когда chat не видит, что отдаленная система посылает быстрый вход в систему, sub-script выполняется сначала посылая BREAK, и затем ожидает для входа в систему снова. Если prompt теперь появится, то script будет продолжаться как обычно, иначе это прервется с ошибкой.




Содержание  Назад  Вперед