Простой скрипт для dip
Пример 7-1. Простой скрипт для dip
# Sample dip script for dialing up cowslip # Set local and remote name and address get $local vlager-slip get $remote cowslip port ttyS3 # choose a serial port speed 38400 # set speed to max modem HAYES # set modem type reset # reset modem and tty flush # flush out modem response # Prepare for dialing. send ATQ0V1E1X1\r wait OK 2 if $errlvl != 0 goto error dial 41988 if $errlvl != 0 goto error wait CONNECT 60 if $errlvl != 0 goto error # Okay, we're connected now sleep 3 send \r\n\r\n wait ogin: 10 if $errlvl != 0 goto error send Svlager\n wait ssword: 5 if $errlvl != 0 goto error send knockknock\n wait running 30 if $errlvl != 0 goto error # We have logged in, and the remote side is firing up SLIP. print Connected to $remote with address $rmtip default # Make this link our default route mode SLIP # We go to SLIP mode, too # fall through in case of error error: print SLIP to $remote failed.
После установления связи с cowslip и запуска протокола SLIP dip отсоединится от терминала и перейдет в фоновый режим. Вы сможете использовать обычные сетевые услуги на SLIP-связи. Чтобы завершить связь, просто вызовите dip
c опцией -k. Это пошлет сигнал hangup процессу dip, используя запись id dip в /etc/dip.pid:
# dip -k
В языке скриптов dip, ключевые слова с префиксом $ обозначают различные имена. dip имеет предопределенное множество переменных, которые будут перечислены ниже. Например, $remote и $local содержат имена удаленной и локальной машин.
Первые два оператора в типовом скрипте команды get, которые являются способом установки переменных в dip. Здесь имена локальной и удаленной машин установлены соответственно в vlager и cowslip .
Следующие пять операторов устанавливают линию терминала и модем. Команда reset посылает reset-строку модему (для Hayes-совместимых модемов, это ATZ). Следующий оператор игнорирует реакцию модема так, чтобы login chat на последовательных линиях работал правильно. Сhat довольно прост: он набирает номер 41988, номер телефона cowslip, и подсоединяется под именем Svlager через пароль knockknock. Команда wait заставит dip
ждать строку, заданную как его первый аргумент. Число, заданное в секундах, как второй аргумент, определяет, сколько времени надо ждать, если строка не была получена. Команды if разбросаны в процедуре входа в систему и проверяют то, что никакие ошибки не появились при выполнении этой команды.
Итоговые (final) команды выполняются после регистрации. Они заданы в default, и заставят SLIP связать заданный по умолчанию маршрут со всеми хостами и режимом (mode ), который включает SLIP на линии и конфигурирует интерфейс и таблицу маршрутов (routing tables).