Пакет "Empty" - пишем сценарий для Zyxel Keenetic CLI

Используем пакеты, расширяющие возможности оборудования
HuduGuru
Сообщения: 8
Зарегистрирован: 06 июл 2017, 21:52

Сообщение HuduGuru » 10 окт 2017, 13:09

Всем доброго дня,

Понадобилось написать автоматизированный сценарий для командной строки Кинетик.
В репозитории нашел пакет empty - лучше быб конечно expect, но тоже годится.
Ман находится легко: http://www.linuxcertif.com/man/1/empty/
Просто сценарий тоже написал без особых сложностей:
 
if [ -f log ]; then rm log; fi
if [ -f in ]; then rm in; fi
if [ -f out ]; then rm out; fi

empty -v -f -i in -o out -L log telnet 192.168.1.1
empty -v -w -i out -o in Login: 'admin\n'
empty -v -w -i out -o in Password: '\n'
empty -v -w -i out -o in config 'interface WifiMaster0\n'
empty -v -w -i out -o in config-if 'down\n' config 'exit\n'
empty -v -w -i out -o in config-if 'up\n'
empty -v -w -i out -o in config-if 'exit\n'
empty -v -w -i out -o in config 'exit\n'
Свернуть


Но вот как бы сделать, чтобы распознавались полные приглашения Зухеля? Вот эти "(config)>", со скобочками и знаком "больше".

Перепробовал вроде все варианты - кавычки двойные, одинарные, экранирование "\" - не хочет распознавать.

empty -v -w -i out -o in "(config)>" 'interface WifiMaster0\n'
empty -v -w -i out -o in '(config)>' 'interface WifiMaster0\n'
empty -v -w -i out -o in \(config\)\> 'interface WifiMaster0\n'

Подскажите, что я не так делаю?

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1353
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 10 окт 2017, 13:35

А ничего, что есть утилита ndmq для "общения" с прошивкой напрямую. Примеры использования ищите тут и на https://forum.keenetic.net/

Код: Выделить всё

ndmq -p "interface WifiMaster0/AccessPoint0 down" -P message

HuduGuru
Сообщения: 8
Зарегистрирован: 06 июл 2017, 21:52

Сообщение HuduGuru » 10 окт 2017, 13:49

Спасибо, но эта утилита, кажется, для локального роутера, а мне надо удаленным рулить.

laforsh
Сообщения: 26
Зарегистрирован: 23 авг 2015, 21:41

Сообщение laforsh » 10 окт 2017, 14:10

Насторить ssh авторизацию по приватным ключам, и на удаленном роутере по ssh же выполнить bash скрипт не катит ?
Что вообще нужно сделать то на удаленном хосте ?

HuduGuru
Сообщения: 8
Зарегистрирован: 06 июл 2017, 21:52

Сообщение HuduGuru » 10 окт 2017, 14:52

На удалённом рутере нет ничего, кроме телнета. Кинетик 4Г там.
Надо ровно то, что делает написанный выше скрипт - передернуть ВайФай.

Дальше - чистый перфекционизм. Хочу полностью (config)> распознавать.
Пока распознает только со скобочками (config), а со знаком ">" не хочет.
Вероятно, я что-то недопонимаю в экранировании спецсимволов в шелле, вот и хотелось бы понять, что именно.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 3 посетителя :: 2 зарегистрированных, 0 скрытых и 1 гость (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и 1 гость