Поставил пакет 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";.
};
После этого все работает как и где надо. Кстати очень клевая штука, можно прям с телефона давать команды роутеру
Last edited by sasa1978; 10-10-2015 at 15:42.
> можно прям с телефона давать команды роутеру
ConnectBot
Роутер: RT-N66U
Прошивка: Tomato Firmware 1.28.0000 MIPSR2 K26 USB AIO-64K by Shibby
Скажите, на прошивке MerlinWRT у кого-нибудь работает telegram-cli? Я очень хотел иметь возможность управлять роутером через Telegram, очень обрадовался, когда telegram-cli появился в Entware, но у меня программа в 100% случаев завершается выдав одно слово "Killed". В каком направлении копать?
Ставил бы вопрос по другому: «У кого-нибудь работает telegram-cli на роутере с объёмом памяти хх МБ?»
Я отлаживал telegram-cli на прошивке asuswrt-merlin. На RT-N66U с 256МБ RAM всё работает изюмительно, а на девайсе с 64МБ к вам регулярно будет приходить добрый волшбеник OOM Killer.
Дополнительно добавлю скрипт для telegram, что бы можно было отправлять роутеру команды.
Где 'Your_Name' - это ваше имя в телеграмм.Code: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
Скрипт я сохранил в /opt/etc/telegram-cli/script.lua
Для автозапуска telegram после перезагрузки роутера я дополнительно добавил в /opt/etc/init.d следующий bash скрипт (у меня стоит entware для ARM и там почему то стартовый скрипт не поставился):
Сообщения от роутера из bash скрипта можно отправлять так:Code:#!/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
Где 43210 номер порта, указанный при запуске telegramCode:echo "msg You_Name 'Ваше сообщение'" >/dev/tcp/127.0.0.1/43210
Пример использования:
У меня написан скрипт на bash, который запускается по моему запросу из telegram, анализирует 38 страниц с форумов, блогов и новостных сайтов на изменение содержимого, и отправляет мне страницы, которые были изменены обратно в telegram. Чертовски удобно и экономит кучу времени.
Last edited by sasa1978; 27-10-2015 at 12:35.
McSimm, какой командой запускаешь?
P.S: У меня свап включен, но он используется только во время активной закачки/раздачи трансмишенном
telegram-cli -k /opt/etc/telegram-cli/tg-server.pub
но даже если совсем без параметров запустить - тоже сразу Killed
добавил своп на 64 мегабайта - не помогает
Code: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
Last edited by McSimm; 27-10-2015 at 16:12.
Попробуй переустанови пакет.
Слово Killed я нашел только в библиотеках:
libapr-1.so.0.5.2
libcidn-2.20.so
Видимо какая-то проблема с библиотеками или путями. Может быть не все поставилось как надо.
Тогда уж надо было добавить ключ --autoremove при удалении
Тогда я предлагаю взять чистую флешку, поставить туда чистый entware и сразу поставить telegram. Если заработает, тогда ставить дальше по одной программе, и вычислить с чем идет конфликт.
Если не заработает сразу, то видимо это уже косяк сборки под entware
Включите swap.
Попробовал telegram-bot-bash с минимальным модификациями, всё работает. Из зависимостей только bash, grep и curl.
Если не хочется бесконечно долбиться скриптом в api.telegram.org, то можно отключить в нём бесконечный цикл и воткнуть его в cron. Тогда скрипт не будет разбирать стопку набранных команд, а будет брать лишь последнюю команду из чата и отсылать результат выполнения назад в чат.
Last edited by ryzhov_al; 30-10-2015 at 11:35.