Предлагаю вашему вниманию небольшую программку, предназначенную для рутинной установки софта на устройства на базе линукс. В частности, на тюнера.
Технически, она состоит из трех компонентов:
- сканера портов, выискивающего все открытые порты telnet в локальной сети;
- клиента telnet, способного автоматически загружать и выполнять заранее подготовленные скрипты;
- и web сервера, служащего источником для загрузки необходимых компонентов в устройство.
Выглядит все это великолепие примерно так...
Как видим, интерфейс программы рассчитан на мартышку. Т.е. подготовив необходимые настройки, установку софта можно доверить и уборщице (заодно поднимете ее самооценку... гы-гы-гы /гнусно хихикает/).
По умолчанию, скрипты располагаются во вложенной папке scripts и их названия подгружаются в меню выбора скрипта при старте программы. Скрипт описывается одним обязательным и двумя опциональными файлами:
- мой_скрипт.script - исполняемый файл (любого типа. как минимум, shell script);
- мой_скрипт.info - текст предупреждения перед загрузкой программы в тюнер;
- мой_скрипт.after - сообщение после отправки данных на устройство (например, может содержать инструкции типа "выдерните из розетки!").
Скрипт может выглядеть примерно так:
#!/bin/sh
echo "updating"
killall autodial3g.sh
mount -o remount,rw /
echo "downloading autodial"
wget http://<server>/autodial3g.sh -O /etc/autodial3g.sh
chmod 755 /etc/autodial3g.sh
echo "configuring services"
wget http://<server>/sx4/service.sh -O /etc/init.d/service.sh
chmod 755 /etc/init.d/service.sh
echo "downloading ns settings"
wget http://<server>/nsswitch.conf -O /etc/nsswitch.conf
chmod 755 /etc/nsswitch.conf
echo "done..."
mount -o remount,ro /
echo "restart needed"
Обратите внимание на
wget http://<server>/autodial3g.sh -O /etc/autodial3g.sh
При загрузке скрипта на устройство, тег <server> будет автоматически заменен на IP адрес вашего компьютера, дополненный портом, на котором отвечает web сервер программы. Т.е. если вам нужно качать какие-то данные не с интернета или локальных серверов, а со своего компа (буде таковой не имеет фиксированного адреса), этот финт ушами позволит пользоваться сим скриптом в любую погоду и на любом компе.
Корневой папкой web сервера так же является папка scripts.
Прямое общение
В принципе, вводить команды можно прям в окне ответа тюнера, но в этом случае, они останутся в истории только тюнера (и то - не факт). Поле ввода команд хранит историю для всех введенных команд и может повторяться на разных устройствах. Рутина ахы...
Настройки
После первого запуска программы, в %APPSETTINGS% вашего профиля создается папка настроек, содержащая 2 файла:
~/.config/wilhelm/tuner-setup$ ls
commands.txt settings.ini
- commands.txt - содержит историю команд, введенных вручную в поле ввода;
- settings.ini - файл настроек программы...
[net]
prefix=10.20.0.
[web]
port=1380
folder=/home/vlad/tuner_telnet/scripts/
[telnet]
login=root
password=root
Префикс сети - строка, к которой добавляются цифры от 1 до 250 при поиске устройств в сети.
При подключении к устройству, программа пытается автоматически залогиниться на его telnet сервере с реквизитами, указанными в файле настроек.
Немного о примерах
В архиве программы находятся скрипты отключающие DNS клиента на тюнере и заставляющие его использовать USB модем для связи только с конкретным сервером. Пример кривой, но работающий :)