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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.11.2014, 12:35   #1
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 933
Вес репутации: 967
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
Адрес: МСК
Сообщений: 933
Вес репутации: 967
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
Адрес: МСК
Сообщений: 933
Вес репутации: 967
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
Адрес: МСК
Сообщений: 933
Вес репутации: 967
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
Адрес: МСК
Сообщений: 933
Вес репутации: 967
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
Адрес: МСК
Сообщений: 933
Вес репутации: 967
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
Сообщений: 302
Вес репутации: 368
solalex is a name known to allsolalex is a name known to allsolalex is a name known to allsolalex is a name known to allsolalex is a name known to allsolalex is a name known to all
По умолчанию Re: Включение сервера по требованию

то, что называется сервером, должно работать круглосуточно
solalex вне форума   Ответить с цитированием
Старый 07.05.2015, 14:38   #9
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 933
Вес репутации: 967
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
Адрес: МСК
Сообщений: 933
Вес репутации: 967
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 код Выкл.

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


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


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