PDA

Bekijk de volledige versie : Установка telegram-cli на Asus RT-N66U (AsusWRT-Merlin)



sasa1978
10-10-2015, 16:17
Поставил пакет telegram-cli, который по умолчанию сохраняет данные авторизации в /root/.telegram-cli/

Соответственно все настройки программы после перезагрузки роутера пропадают. Можно ли что-нибудь с этим поделать?

tg-server.pub без которого не может работать программа лежит почему то в /opt/etc/telegram-cli, хотя должен лежать со всеми файлами конфигурации

P.S: Все, разобрался как перенести. Надо запустить так telegram-cli так:
telegram-cli -c /opt/etc/telegram-cli/config

И в config добавить:
default_profile = "home_router";

home_router = {
config_directory = "/opt/etc/telegram-cli";.
};

После этого все работает как и где надо. Кстати очень клевая штука, можно прям с телефона давать команды роутеру :)
10159

ryzhov_al
11-10-2015, 09:37
Поставил пакет telegram-cli, который по умолчанию сохраняет данные авторизации в /root/.telegram-cli/

Соответственно все настройки программы после перезагрузки роутера пропадают. Я не стал это править, оставив возможность запуска нескольких экземпляров.


Можно ли что-нибудь с этим поделать?
HOME=/opt/var/tg telegram-cli -c /opt/etc/telegram-cli/config

Radjah
26-10-2015, 14:32
> можно прям с телефона давать команды роутеру
ConnectBot (https://play.google.com/store/apps/details?id=org.connectbot&hl=ru)

sasa1978
26-10-2015, 14:52
> можно прям с телефона давать команды роутеру
ConnectBot (https://play.google.com/store/apps/details?id=org.connectbot&hl=ru)

Мелковато, и не так удобно:

10168

McSimm
27-10-2015, 10:48
Скажите, на прошивке MerlinWRT у кого-нибудь работает telegram-cli? Я очень хотел иметь возможность управлять роутером через Telegram, очень обрадовался, когда telegram-cli появился в Entware, но у меня программа в 100% случаев завершается выдав одно слово "Killed". В каком направлении копать?

ryzhov_al
27-10-2015, 10:55
Ставил бы вопрос по другому: «У кого-нибудь работает telegram-cli на роутере с объёмом памяти хх МБ?»


Скажите, на прошивке MerlinWRT у кого-нибудь работает telegram-cli? Я очень хотел иметь возможность управлять роутером через Telegram, очень обрадовался, когда telegram-cli появился в Entware, но у меня программа в 100% случаев завершается выдав одно слово "Killed". В каком направлении копать?Я отлаживал telegram-cli на прошивке asuswrt-merlin. На RT-N66U с 256МБ RAM всё работает изюмительно, а на девайсе с 64МБ к вам регулярно будет приходить добрый волшбеник OOM Killer (http://shtsh.blogspot.ru/2012/04/oom-killer.html).

sasa1978
27-10-2015, 13:27
Дополнительно добавлю скрипт для telegram, что бы можно было отправлять роутеру команды.



function on_msg_receive (msg)
if msg.out then
return
end

if (tostring (msg.from.print_name)=='Your_Name') then
local handle = io.popen(msg.text)
local res = handle:read("*a")
handle:close()

send_msg (msg.from.print_name, res, ok_cb, false)
end

end


Где 'Your_Name' - это ваше имя в телеграмм.

Скрипт я сохранил в /opt/etc/telegram-cli/script.lua

Для автозапуска telegram после перезагрузки роутера я дополнительно добавил в /opt/etc/init.d следующий bash скрипт (у меня стоит entware для ARM и там почему то стартовый скрипт не поставился):


#!/bin/sh

ENABLED=yes
PROCS=telegram-cli
ARGS=" -k /opt/etc/telegram-cli/tg-server.pub -c /opt/etc/telegram-cli/config -W -d -P43210 -s /opt/etc/telegram-cli/script.lua"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. /opt/etc/init.d/rc.func


Сообщения от роутера из bash скрипта можно отправлять так:


echo "msg You_Name 'Ваше сообщение'" >/dev/tcp/127.0.0.1/43210


Где 43210 номер порта, указанный при запуске telegram

Пример использования:
У меня написан скрипт на bash, который запускается по моему запросу из telegram, анализирует 38 страниц с форумов, блогов и новостных сайтов на изменение содержимого, и отправляет мне страницы, которые были изменены обратно в telegram. Чертовски удобно и экономит кучу времени.

McSimm
27-10-2015, 16:09
Я отлаживал telegram-cli на прошивке asuswrt-merlin. На RT-N66U с 256МБ RAM всё работает изюмительно, а на девайсе с 64МБ к вам регулярно будет приходить добрый волшбеник OOM Killer (http://shtsh.blogspot.ru/2012/04/oom-killer.html).

Так у меня как раз RT-N66U с 256 Mb RAM. Сейчас показывает "использовано 168 Мб, свободно 65 Мб, всего 234 Мб". Останавливал Transmission - освободил совсем копейки. Надо как-то SWAP включить, или есть лучше способы? Спасибо

sasa1978
27-10-2015, 16:18
McSimm, какой командой запускаешь?


P.S: У меня свап включен, но он используется только во время активной закачки/раздачи трансмишенном

McSimm
27-10-2015, 17:06
McSimm, какой командой запускаешь?

telegram-cli -k /opt/etc/telegram-cli/tg-server.pub

но даже если совсем без параметров запустить - тоже сразу Killed

добавил своп на 64 мегабайта - не помогает


mcsimm@MY-WRT:/# free
total used free shared buffers
Mem: 239672 173224 66448 0 1500
-/+ buffers: 171724 67948
Swap: 63472 40 63432
mcsimm@MY-WRT:/# telegram-cli -k /opt/etc/telegram-cli/tg-server.pub
Killed

sasa1978
27-10-2015, 17:38
Попробуй переустанови пакет.

Слово Killed я нашел только в библиотеках:
libapr-1.so.0.5.2
libcidn-2.20.so

Видимо какая-то проблема с библиотеками или путями. Может быть не все поставилось как надо.

McSimm
28-10-2015, 13:45
Попробуй переустанови пакет.

Переустановил (remove, install) - не помогло :-(

sasa1978
28-10-2015, 14:23
Тогда уж надо было добавить ключ --autoremove при удалении

Тогда я предлагаю взять чистую флешку, поставить туда чистый entware и сразу поставить telegram. Если заработает, тогда ставить дальше по одной программе, и вычислить с чем идет конфликт.

Если не заработает сразу, то видимо это уже косяк сборки под entware

ryzhov_al
28-10-2015, 15:01
Включите swap.

ryzhov_al
30-10-2015, 12:20
После этого все работает как и где надо. Кстати очень клевая штука, можно прям с телефона давать команды роутеру :)Попробовал telegram-bot-bash (https://github.com/topkecleon/telegram-bot-bash) с минимальным модификациями, всё работает. Из зависимостей только bash, grep и curl.

Если не хочется бесконечно долбиться скриптом в api.telegram.org, то можно отключить в нём бесконечный цикл и воткнуть его в cron. Тогда скрипт не будет разбирать стопку набранных команд, а будет брать лишь последнюю команду из чата и отсылать результат выполнения назад в чат.

ryzhov_al
01-11-2015, 06:35
Плюс софтины telegram-cli в том, что она может выступать самостоятельным юзером и имеет постоянное подключение к telegram. Минус в том, что в требует для работы ~100МБ памяти и не стартует без свопа даже на RT-N66U.

Для целей управления роутером bashbot годится куда лучше. Написал тестового бота, можете с ним поговорить - @ironkakadu_bot (https://web.telegram.org/#/im?p=@ironkakadu_bot).