Как пользоваться empty ?

Используем пакеты, расширяющие возможности оборудования
ZigZag
Сообщения: 177
Зарегистрирован: 28 окт 2015, 03:43

Сообщение ZigZag » 12 мар 2019, 04:54

В прошлом году я интересовался по поводу использования empty (который мне предложиили как альтернативу expect, которого не было в entware) но ответа так и не было. В итоге я так и не вкурил, как использовать сие чудо программисткой мысли для автоматизации процесса авторизации т.к. информации по данной тулзе в сети кот наплакал (маны скудные, а примеров или мануалов практически нет).

Не так давно наткнулся на expect среди пакетов termux и на устройствах на андроиде 5+ я вопрос с авторизацией решил, а вот для более ранних ведёрок он остаётся открытым.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 13 мар 2019, 01:31

Почему бы тогда не скомпилировать ваш любимый expect самостоятельно прямо в Entware?

Tcl в Entware есть. Заголовки найдете, если надо. Перед сборкой правите configure-скрипт

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

STTY_BIN=/opt/bin/stty

и, если хотите, исправляете /tmp-пути в exp_pty.c

ZigZag
Сообщения: 177
Зарегистрирован: 28 окт 2015, 03:43

Сообщение ZigZag » 13 мар 2019, 04:09

kaztost, я уже (где-то) писал, что я не спец в сборке и что-то сложнее make врятли осилю. Правка исходников и выправление зависимостей - это не моё. По крайней мере на данный момент.

Да и разве получится собрать expect под entware-ng ? По моему это последний entware, который шуршит на андроидах 4.x Там разве есть всё необходимое ?

А вообще тема несколько о другом - я не против пользоваться empty как альтернативой. Я хочу понять как им пользоваться. Нужны рабочие примеры коннекта через ssh и телнет, с автоматизацией авторизации и последующей передачей управления (ака interact в expect) пользователю.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 13 мар 2019, 09:54

ZigZag писал(а):Источник цитаты Да и разве получится собрать expect под entware-ng ? По моему это последний entware, который шуршит на андроидах 4.x Там разве есть всё необходимое ?

При чем здесь версия андроида? И при чем здесь неподдерживаемая Entware-ng? Не говорите здесь больше про Entware-ng, только Entware.

Если имеете в виду ограничение по версии ядра то ветка http://bin.entware.net/armv7sf-k2.6 как раз для старых ядер, если что. И gcc там есть.

ZigZag писал(а):Источник цитаты я не против пользоваться empty как альтернативой
ну пользуйтесь, если можете. Вы же гуглили, примеров в сети мало, значит этим empty мало пользуются, маловероятно, что и здесь смогут серьезно помочь. Вот я и предлагал собрать нужный вам expect поскольку
1. собирают разные программы многие, многие смогут помочь, если что.
2. типичные ошибки сборки легко гуглятся.
3. такой подход будет более продуктивен в конечном итоге, поскольку научит собирать другие программы.

ZigZag писал(а):Источник цитаты примеры коннекта через ssh и телнет

telnet, серьезно? В наше время это уже не более чем тестовый инструмент, наподобие netcat, зачем там автозаполнение. Есть ssh, а ssh понимает и принимает ключи. Приведите реальный пример, когда без expect/empty не обойтись. Заинтересуйте потенциальных отвечателей, так сказать.

ZigZag
Сообщения: 177
Зарегистрирован: 28 окт 2015, 03:43

Сообщение ZigZag » 13 мар 2019, 12:28

Если имеете в виду ограничение по версии ядра то ветка http://bin.entware.net/armv7sf-k2.6 как раз для старых ядер, если что. И gcc там есть.
Да, про него. Просто мне казалось, что entware на старых ядрах не будут ваять и не отслеживал этот вопрос. А оно эвона как.
ну пользуйтесь, если можете. Вы же гуглили, примеров в сети мало, значит этим empty мало пользуются, маловероятно, что и здесь смогут серьезно помочь
Ну, как бы мне его тут посоветовал Алексей Рыжков, а он как мне кажется, должен быть в курсе. Наверное надо ему в личку написать )))
И gcc там есть.
Имхо, но смарт использовать для компиляции так себе вариант. Лучше уж тогда кросс-компиляция на ПК/vbox.
telnet, серьезно? В наше время это уже не более чем тестовый инструмент, наподобие netcat, зачем там автозаполнение.
Тот же zyxel keenetic с прошивкой первого поколения, zyxel'и с прошивкой второго поколения с их cli, различная роутерная китайщина и т.д. и т.п.
Есть ssh, а ssh понимает и принимает ключи. Приведите реальный пример, когда без expect/empty не обойтись. Заинтересуйте потенциальных отвечателей, так сказать.
Генерация ключей - лишний гемморой, требующий вороха лишних телодвижений. Мне проще написать expect-скрипт в 5 строчек, чем запиливать ключи для всего парка устройств.

По поводу примеров, вот банальное обломинго
Host 'xxx' is not in the trusted hosts file.
(fingerprint md5 xxx)
Do you want to continue connecting? (y/n)
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 13 мар 2019, 12:55

ZigZag писал(а):Источник цитаты Host 'xxx' is not in the trusted hosts file.
(fingerprint md5 xxx)
Do you want to continue connecting? (y/n)

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

 ssh -o "StrictHostKeyChecking=no" user@host

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 13 мар 2019, 12:58

ZigZag писал(а):Источник цитаты Имхо, но смарт использовать для компиляции так себе вариант. Лучше уж тогда кросс-компиляция на ПК/vbox.

В случае с expect без разницы - компиляция (на Андроиде, но не для Entware) у меня заняла 2-3 минуты. На компе было бы 1-2 минуты. Но на нативной сборке в общем случае настаивать не буду)

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 13 мар 2019, 13:01

ZigZag писал(а):Источник цитаты Тот же zyxel keenetic с прошивкой первого поколения, zyxel'и с прошивкой второго поколения с их cli, различная роутерная китайщина и т.д. и т.п.

Имхо, конечно, но избегать надо использования telnet в пользовательских целях. 21 век давно.

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 13 мар 2019, 13:06

ZigZag писал(а):Источник цитаты а он как мне кажется, должен быть в курсе

может быть да, а может быть нет. Как я понял, empty без интерактивного режима типа interact, могу ошибаться)

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 13 мар 2019, 16:03

kaztost писал(а):Источник цитаты компиляция (на Андроиде, но не для Entware) у меня заняла 2-3 минуты.

Скомпилированный expect кстати работает, по ssh авторизирует, что по паролю, что по парольной фразе ключа. Забава, короче, лично для меня остается забавой, серьезных для себя применений как не видел, так и не вижу. Ну может админам всяких серверов нужно подобное, чтобы одно и то же повторно не вносить.

Ну и напрягает еще зависимость от tcl. Ненужная сама по себе штука (все же не пЁрл или пАЙтон), на нем ничего интересного не написано больше. Пока меня забавляют мысли, как этот tcl статически привязать к expect.


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

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

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

Сейчас этот форум просматривают: Bing [Bot] и 3 гостя