Скрипты и схемы для автоматической перезагрузки устройств по состоянию сети

03.03.12

База данных - Инструменты администратора БД

Через определенные промежутки времени скрипт на сервере с FreeBSD пингует какой либо узел или узлы. Если пинг не проходит, сервер через Serial порт подает команду на микроконтроллер для перезагрузки нужного устройства. Микроконтроллер в свою очередь переключает на несколько секунд соответствующее реле для снятия питания с устройства и последующим его включением.

Скачать исходный код

Наименование Файл Версия Размер
Python скрипт
.py 2,05Kb
6
.py 2,05Kb 6 Скачать
Прошивка для Arduino
.ino 0,63Kb
4
.ino 0,63Kb 4 Скачать

Маленькая статья для тех, кто использует на удаленных объектах, к которым затруднен доступ, оборудование, которое в силу своих свойств или в силу внешних факторов периодически зависать вешать канал и т.д.  Данные неприятности чаще всего лечатся банальной перезагрузкой устройства, но иногда, чтоб добраться до узла приходится ехать до него полдня, чтоб просто отключить и включить заново. Вот именно для таких случаев и подойдет эта статья.

Что мы имеем.

  1. Dlink роутер прошитый для работы с YOTA например.
  2. Системный блок с FreeBSD на борту.
  3. Микроконтроллер Arduino NANO.
  4. Блок реле.

Идея работы простая.

Через определенные промежутки времени скрипт на сервере с FreeBSD пингует какой либо узел или узлы. Если пинг не проходит, сервер через Serial порт подает команду на микроконтроллер для перезагрузки нужного устройства. Микроконтроллер в свою очередь переключает на несколько секунд соответствующее реле для снятия питания с устройства и последующим его включением.

Итак, начнем.

Разворачиваем ОС FreeBSD. Все приведенные здесь примеры были опробованы на FreeBSD 9.0 RC3

  1. Устанавливаем из портов Python
    1. cd /usr/ports/lang/python
    2. make install clean
    3. Устанавливаем модуль Python’a для работы с Serial портом.
      1. cd /usr/ports/comms/py-serial
      2. make install clean
      3. Устанавливаем мост для USB->COM для Arduino
        1. cd /usr/ports/comms/uarduno
        2. make install clean

На этом подготовка сервера к мониторингу сети закончена. Займемся аппаратной частью.

Имеем Arduino Nano стоимостью 500 руб и блок реле http://www.ebay.com/itm/8-Channels-5V-Relay-Module-Arduino-ARM-PIC-AVR-DSP-/170667758574?pt=LH_DefaultDomain_0&hash=item27bc9753ee стоимостью 400 руб. Скачав с сайта http://arduino.cc/en/Main/Software приложения для программирования Arduino зальем в неё примитивную программу для управления релюшкой через команду пришедшую с COM порта.

"Прошивка для Arduino" смотри в приложенных файлах.

Суть работы программы просто в бесконечном цикле ждем получения команды на Serial порт. Если получаем команду «1» то переключаем на 10 секунд  реле в другое состояние, далее опять возвращаемся в исходное состояние.

Описание прошики.

Цифровой выход №2 #define RELE 2 используем для управления реле. Для моего блока реле управляющий сигнал должен быть подтянут к 0. Поэтому переключаем режим работы порта pinMode(RELE, OUTPUT);

В рабочем состоянии блока реле подаем на выход высокий уровень сигнала digitalWrite(RELE, HIGH);

 Для срабатывания реле подаем низкий уровень сигнала digitalWrite(RELE, LOW);  по условию, если через порт придет «1»  if (command==1)

13 порт работает в инверсивной индикации через светодиод. При срабатывании реле просто зажигает светодиод.

Для управления микроконтроллером есть скрипт

"Python скрипт" смотри в приложенных файлах.

написанный на Phyton. Скрипт располагаем его в директории /usr/local/script/ и даем ему права на запуск.

Описание скрипта.

ser = serial.Serial(

    port='/dev/cuaU0',

    baudrate=19200,

    timeout=10,

    parity=serial.PARITY_NONE,

    stopbits=serial.STOPBITS_ONE,

    bytesize=serial.EIGHTBITS

)

Описываем наш виртуальный COM порт, здесь основное это имя порта ищем в /dev/cua* и скорость обмена и здесь и в прошивке микроконтроллера я поставил 19200.

hosts = ["ya.ru"]

перечень узлов которые будем пинговать.

В случае проблем с доступностью устройства через COM порт отсылается уведомление на почту.

в /var/cron/tabs/root

создаем запись для вызова скрипта по расписанию

gw# cat root
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
#minute hour    mday    month   wday    who     command
#
*/30    *       *       *       *       /usr/local/script/reset.py

В принципе все очень просто. Если всетаки не понятно расписал напишите в комментариях постараюсь поправить и дополнить графическими схемами.

 

 

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

14400 руб.

06.12.2023    3534    19    1    

38

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4240    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178575    1083    0    

861

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27853    82    146    

61

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61512    89    59    

74

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11852    5    9    

7

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    11152    5    8    

9

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    14373    33    0    

48
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. via 92 16.07.13 00:40 Сейчас в теме
тема arduino гораздо шире... можно сделать целый "умный дом".. осталось только научиться паять... хотя и без пайки, чуть дороже можно сделать много хороших решений.. СКУД, например. Я, лично, пока балуюсь (на работе) тем, что вентилятор сам включается утром выключается вечером (ну и батники нужные ссылками висят в нужном месте с нужными иконками)
+
Внимание! Тема сдана в архив