Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Linux для начинающих

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.11.2014, 12:35   #1
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 953
Вес репутации: 987
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Включение сервера по требованию

Есть "большой" домашний сервер, на котором есть samba, web, будет DLNA, openmediavault и что-то типа OpenHUB/MajorDoMo.
Ранее функцию samba выполнял "малый" asus wl500W. Но скорость чтения по USB ужасает.
Держать большой комп включенным 24/7 - имхо противоречит идее экономии электричества.
Мысль: отслеживать на wl500w состояние сервера и обращения к нему, и при необходимости будить wake-on-lan.

на текущий момент представляется примерно так:
1. В скрипты /etc/rc0.d добавить некое обращение к wl500w.
2. Мониторинг:
2.1 Поднимаем на роутере виртуальный интерфейс с ip сервака (реализовано)
2.2 wl500w с помощью iptables отслеживает обращения к 192.168.1.169 (реализовано)
2.3 Пакеты перехвтываем и сохраняем для дальнейшей передачи "проснувшемуся" серваку

3. при обнаружении пакета wakeonlan'им сервак и останавливаем мониторинг. (реализовано)
3.1 Ждем 30 сек. проверяем доступность сервера и передаем сохраненные пакеты.
4. При отсутствии активности на сервере более 30мин. гасим его.Мониторинг активности и выключение ведутся средствами сервера(по уточнению mebitek'a) .

Хотелось бы послушать критику самой идеи и мысли по конкретной реализации каждого пункта.

пункты 2 и 3 решены. Скрипты в приложенных файлах (переносы строки Unix)
Скрипты размещаются в /opt/sbin (прошивка энтузиастов), запускается watchserv (пока руками). комментарии проставил.
недостатки/доработки:
1.В идеале вынести все настройки в шапку одного скрипта и передавать в другие в качестве параметра или переменных среды.
2. Скрипт гасит все awk и tail в системе. По хорошему нужно создавать pid'ы
3. Остались нерешенными 1 и 4.
4. При пропадании электропитания wakeonlan не на всех материнках срабатывает.
Вложения
Тип файла: txt wakeserv.txt (293 байт, 297 просмотров)
Тип файла: txt watchserv.txt (435 байт, 199 просмотров)

Последний раз редактировалось Tohin; 31.08.2015 в 20:07.
Tohin вне форума   Ответить с цитированием
Старый 07.12.2014, 12:07   #2
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 953
Вес репутации: 987
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: Включение сервера по требованию

Немного почитав маны, я пришел к выводу, что перехваченный tcpdump'ом пакет ARP-запроса не может быть обработан iptables, т.к. это не tcp/ip
Мониторинг tcpdump'ом не выриант - грузит и без того слабый проц на полную.
Еще есть некая arpwatch.... Ушел гуглить...

UPD:
Вобщем это тоже не то. Теперь есть мысль об виртуальном интерфейсе, на роутере. Как только сервак засыпает - просыпатеся мафия? в смысле виртуальный интерфейс на роутере с тем же ip-шниокм. После отправки magic-packet вирт.интерфейс гаситься....
на память:
Интерфейсы Asus WL-500W :

eth0 = 4 x LAN порта
eth1 = WAN порт
eth2 = Wi-Fi
br0 = LAN + Wi-Fi (eth0 + eth2)

Попробуем создать виртуальный интерфейс на eth0:
ifconfig eth0:0 192.168.1.81

Ура. "виртуально" сервер в сети.
iptables -t nat -I PREROUTING -d 192.168.1.81 -j LOG --log-prefix="TRIGGER ME NOW !!!"
cat /tmp/syslog.log
БИНГО!
Цитата:
Dec 7 19:30:56 kernel: TRIGGER ME NOW !!!
Делаем:
$ tail -0 -f /tmp/syslog.log| awk '/TRIGGER ME NOW !!!/ {system("echo Have a nice day")}'
Пингуем и получаем:
Цитата:
Have a nice day

ifconfig eth0:0 down - и он исчез

Последний раз редактировалось Tohin; 07.12.2014 в 19:44. Причина: "Доктор, у меня проблема... я обгуглился"
Tohin вне форума   Ответить с цитированием
Старый 07.12.2014, 22:14   #3
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 953
Вес репутации: 987
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: Включение сервера по требованию

It's work!
Пункты 2 и 3 решены. Как будет немного времени выложу скрипты для "причесывания" сообществом. Может в CyberWRT их захотят оформить...
Остается вопрос по п.1 и 4
Tohin вне форума   Ответить с цитированием
Старый 28.04.2015, 07:20   #4
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 953
Вес репутации: 987
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: Включение сервера по требованию

По вопросу реализации п.1: бродят мысли насчет команды
$ nc -l -p 12345
С передачей полученных данных в awk.
Немного опасений вызывает безопасность данного метода... Окончание процесса брожения ожидается в выходные.
Возможно добавлю grep перед awk

Пока есть такая заготовка:
netcat -l -p 12345|awk '/hello/ {print "Hello World!"}'

Почему-то в варианте:
$ netcat -l -p 12345|grep hello|awk '/hello/ {print "Hello World!"; exit}
срабатывает только при обрыве соединения с netcat

На память:
Цитата:
The init daemon will run all the time. On a shutdown command, init

reads /etc/inittab for shutdown (default is "::shutdodwn:/etc/init.d/rcS K stop")
init calls /etc/init.d/rcS K stop
rcS executes the shutdown scripts located in /etc/rc.d/K##xxxxxx with option "stop"
system halts/reboots

Последний раз редактировалось Tohin; 06.05.2015 в 15:47.
Tohin вне форума   Ответить с цитированием
Старый 06.05.2015, 21:39   #5
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 953
Вес репутации: 987
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: Включение сервера по требованию

Уперся в ограниченность своих знаний. Решил обратится на профильный форум
Tohin вне форума   Ответить с цитированием
Старый 06.05.2015, 22:10   #6
Alex19279
Senior Member
 
Регистрация: 20.09.2014
Сообщений: 145
Вес репутации: 158
Alex19279 will become famous soon enough
По умолчанию Re: Включение сервера по требованию

Цитата:
Сообщение от Tohin Посмотреть сообщение
Уперся в ограниченность своих знаний. Решил обратится на профильный форум
Как бы я решал задачу:
Роутер 3020 24/7 в онлайне, через веб морду управлять сервером, усб-ттл ком переходник на аттиньку, слушаем ком порт роутера, на веб морде кнопки, всем рулит аттинька:
1. Включить БП. (Реле замыкает кратковременно PS_ON).
2. Выключить сервер. (Реле кратковременно замыкает PS_ON).
3. Выключение с удержание PS_ON более 10 сек.
4. Перезагрузка. (Реле замыкает Ресет).
Индикаторы на морде:
Сервер включен. (Измерить напряжение 3,3 вольта или 5 вольт. БП включен и подает напряжение - индикатор что сервер включился.)
Ещё одно реле с нормально замкнутыми контактами подает питание на тиньку и роутер, тинька раз в два часа вклбчает реле, вся связка тиньки и роутера обесточивается, автоматом замыкается реле - защита от зависаний роутера.

Последний раз редактировалось Alex19279; 06.05.2015 в 22:21.
Alex19279 вне форума   Ответить с цитированием
Старый 06.05.2015, 23:00   #7
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 953
Вес репутации: 987
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: Включение сервера по требованию

Цитата:
Сообщение от Alex19279 Посмотреть сообщение
Как бы я решал задачу:
Роутер 3020 24/7 в онлайне, через веб морду управлять сервером, .
а смысл? так можно и физическую кнопку вывести в удобное место.
идея в том чтобы будить сервер автоматически, при появлении необходимости в нем- это програмная часть, а железная на вкус и цвет каждого юзера.
Tohin вне форума   Ответить с цитированием
Старый 07.05.2015, 12:00   #8
solalex
Senior Member
 
Регистрация: 20.01.2015
Сообщений: 309
Вес репутации: 435
solalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud ofsolalex has much to be proud of
По умолчанию Re: Включение сервера по требованию

то, что называется сервером, должно работать круглосуточно
solalex вне форума   Ответить с цитированием
Старый 07.05.2015, 14:38   #9
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 953
Вес репутации: 987
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: Включение сервера по требованию

Зачем?
Цитата:
Се́рвер (англ. server от to serve — служить, мн.ч. се́рверы) — специализированный компьютер и/или специализированное оборудование для выполнения на нём сервисного программного обеспечения (в том числе серверов тех или иных задач).
С чего ему работать 24/7? Сервер отличается тем, что им пользуется не человек, а другие устройства и программы. Работать всегда он не обязан, а в моем случае и не должен.
По существу топика мысли есть?
Tohin вне форума   Ответить с цитированием
Старый 22.05.2015, 10:53   #10
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 953
Вес репутации: 987
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: Включение сервера по требованию

Цитата:
Сообщение от Tohin Посмотреть сообщение
Почему-то в варианте:
$ netcat -l -p 12345|grep hello|awk '/hello/ {print "Hello World!"; exit}
срабатывает только при обрыве соединения с netcat

На память:
Ввиду глюков связки netcat+awk, раздумываю о написании всего сервера на perl/python/something else.
Хочу выслушать советы/мнения/предостережения
Tohin вне форума   Ответить с цитированием
Ответ

Метки
iptables, wake on demand, wake-on-lan


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 00:00. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика