Watchdog linux что это

Мониторинг за изменениями файловой системы

Установка

Можно взять готовую версию из PIP:
$ pip install watchdog
Сам PIP ставится как пакет python-pip, порт devel/py-pip, etc.
Либо собрать из исходников через setup.py.

Достаточно подробно все расписано в оригинальном руководстве. Правда там описание версии 0.5.4, а сейчас актуальна 0.6.0. Однако, вся разница в правке копирайтов и замене отступа в 4 пробела на отступ в 2. «Google code style» 🙂

Вообще, там довольно много особенностей сборки по версиям самого python так и по целевой платформе. Они все описаны по ссылке выше, но если будет нужно, допишу в статью вкратце на русском.

Кроме того, собрать модуль можно на несовместимой ОС, но тогда в дело вступится fallback-реализация, делающая «слепки» структуры ФС с последующими сравнениями. Возможно, так кто-то и делал у себя при решении подобной задачи 🙂

Сам же я пробовал собрать под ubuntu 11.4 и freebsd-8.2 RELEASE, каких-либо проблем при сборке и работе не возникло.

Базовый пример

Предположим, что нас интересуют изменения по некоему пути /path/to/smth, связанные с созданием, удалением и переименованием файлов и директорий.

Класс Observer выбирается в /observers/__init__.py исходя из возможностей вашей ОС, так что нет необходимости самостоятельно решать, что же выбрать.
Класс FileSystemEventHandler является базовым классом обработчика событий изменения. Он мало что умеет, но мы научим его потомка:

Полный список методов можно увидеть в самом FileSystemEventHandler.dispatch: on_modified, on_moved, on_created, on_deleted.

Observer является относительно далеким потомком threading.Thread, соотвественно после вызова start() мы получаем фоновый поток, следящий за изменениями. Так что если скрипт сразу завершится, то ничего толкового мы не получим. Реалиация ожидания зависит в первую очередь от применения модуля в реальном проекте, сейчас же можно просто сделать костыль:

Ждем событий изменений ФС до прихода Ctrl+C (SIGINT), после чего говорим нашему потоку завершиться и ждем, пока он это выполнит.

Запускаем скрипт, идем по нашему пути и:

На выходе скрипта имеем:

В методы нашего класса Handler в поле event приходят потомки FileSystemEvent, перечисленные в watchdog/events.py.
У всех есть свойства src_path, is_directory, event_type («created», «deleted», и т.п.). Для события moved добавляется свойство dest_path.

Ну если вы больше ничего не хотите… А разве ещё что-нибудь есть?

RegexMatchingEventHandler делает тоже самое, но с явным указанием regexp-выражений в конструкторе:

PatternMatchingEventHandler внутри себя в итоге транслирует шаблоны в регулярки, так что должен работать медленнее из-за наличия такого оверхеда.

Наконец, LoggingEventHandler выводит все в лог через logging.info().

— Вот и все. Может кому пригодится.

P.S.
При слежении за директорией, в которой (и в ее дочерних) содержатся папки/файлы не с ascii именованием, возникнет исключение exceptions.UnicodeEncodeError в глубинах watchdog’а. В Linux (inotify) он возникает в watchdog.observers.inotify.Inotify._add_watch.
Причина — чтение содержимого в ascii кодировке.
Для исправления ситуации можно пропатчить метод:

Вот пример исходной строки, и ее repr() до и после обработки encode():

Источник

Установка и настройка Watchdog

Сторожевой таймер (Watchdog timer) — аппаратно реализованная схема контроля над зависанием системы. Представляет собой таймер, который периодически сбрасывается контролируемой системой. Если сброса не произошло в течение некоторого интервала времени, происходит принудительная перезагрузка системы. В некоторых случаях сторожевой таймер может посылать системе сигнал на перезагрузку («мягкая» перезагрузка), в других же — перезагрузка происходит аппаратно (замыканием сигнального провода RST или подобного ему).

Установка в Linux Ubuntu/Debian:

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

Возможные параметры конфига /etc/watchdog.conf:

Если пишутся логи, можно пропускать запись событий каждое указанно количество интервалов. Например если logtick = 60 и interval 10, получится 600 секунд, то есть в логируемый файл будет добавляться запись не чаще одного раза в 10 минут.

Максимально разрешенное значение загрузки системы за 1 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

Максимально разрешенное значение загрузки системы за 5 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

Максимально разрешенное значение загрузки системы за 15 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

Установка минимального количества виртуальной памяти которое должно быть свободно. 0 — проверка отключено.

Установка максимально разрешенной температуры.

Установка имени устройства.

Установка имени устройства температуры.

Файловый режим, проверка файлов.

Интервал времени для файлового режима.

Имя pid файла. Можно добавить отслеживаемый процесс, например «pidfile = /var/run/apache2.pid». В случае невозможности запуска процесса watchdog будет постоянно перезагружать систему.

Режим пинга, для проверки сетевых соединений. Опция может быть использована более одного раза.

Установка имени сетевого интерфейса.

Выполнение пользовательского теста.

Тест может выполняться указанное количество секунд. 0 — неограничено.

Выполняется при невозможности перезагрузки системы.

Адрес email для уведомлений, можно оставить значение пустым для отключения.

Yes для невозможности выгрузки watchdog из оперативной памяти.

Установка приоритета для режима realtime.

Пример настройки с Intel TCO Watchog Timer.
Загрузка модуля:

В /etc/watchdog.conf должно быть раскоментировано/добавлено:

В /etc/default/watchdog указать имя модуля:

Можно добавить опцию отладки чтобы в syslog журнал писалась отладочная информация:

Мониторить в реальном времени записи syslog можно командой:

Источник

Настройка watchdog в Linux

Установка в Linux Ubuntu/Debian:

Список некоторых файлов которые будут установлены в систему:
/etc/init.d/watchdog
/etc/init.d/wd_keepalive
/etc/watchdog.conf
/etc/default/watchdog
/dev/watchdog
/usr/sbin/watchdog
/usr/sbin/wd_identify
/usr/sbin/wd_keepalive
/usr/share/doc/watchdog/
/usr/share/man/man5/watchdog.conf.5.gz
/usr/share/man/man8/watchdog.8.gz
/usr/share/man/man8/wd_identify.8.gz
/usr/share/man/man8/wd_keepalive.8.gz

logtick =
Если пишутся логи, можно пропускать запись событий каждое указанно количество интервалов. Например если logtick = 60 и interval 10, получится 600 секунд, то есть в логируемый файл будет добавляться запись не чаще одного раза в 10 минут.

max-load-1 =
Максимально разрешенное значение загрузки системы за 1 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

max-load-5 =
Максимально разрешенное значение загрузки системы за 5 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

max-load-15 =
Максимально разрешенное значение загрузки системы за 15 минуту при превышении которого система перезагрузится. 0 — отключает проверку.

min-memory =
Установка минимального количества виртуальной памяти которое должно быть свободно. 0 — проверка отключено.

max-temperature =
Установка максимально разрешенной температуры.

watchdog-device =
Установка имени устройства.

temperature-device =
Установка имени устройства температуры.

file =
Файловый режим, проверка файлов.

change =
Интервал времени для файлового режима.

Имя pid файла. Можно добавить отслеживаемый процесс, например «pidfile = /var/run/apache2.pid». В случае невозможности запуска процесса watchdog будет постоянно перезагружать систему.

ping =
Режим пинга, для проверки сетевых соединений. Опция может быть использована более одного раза.

interface =
Установка имени сетевого интерфейса.

test-binary =
Выполнение пользовательского теста.

test-timeout =
Тест может выполняться указанное количество секунд. 0 — неограничено.

repair-binary =
Выполняется при невозможности перезагрузки системы.

admin =
Адрес email для уведомлений, можно оставить значение пустым для отключения.

realtime =
Yes для невозможности выгрузки watchdog из оперативной памяти.

priority =
Установка приоритета для режима realtime.

Пример настройки с Intel TCO Watchog Timer.
Загрузка модуля:

В /etc/watchdog.conf должно быть раскоментировано/добавлено:

В /etc/default/watchdog указать имя модуля:

Можно добавить опцию отладки чтобы в syslog журнал писалась отладочная информация:

Мониторить в реальном времени записи syslog можно командой:

Источник

Аппаратный «watchdog» или незаменимый помощник в борьбе с зависанием

В одной компании было много терминалов, и одна из неблагодарных задач для техподдержки — ездить по точкам и перезапускать операционную систему внутри терминалов. Было решено бросить вызов этой проблеме в виде разработки аппаратного сторожевого таймера.

В итоге мы получили устройство, которое подключается к расширительному спаренному USB-разъему на материнской плате.

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

Данное устройство имеет следующие возможности:

Алгоритм работы прост: внутри находятся два настраиваемых таймера, которые постоянно отсчитывают заданное время, по истечению которого имитируется нажатие соответствующих кнопок (POWER и RESET). Чтобы предотвратить случайную перезагрузку, необходимо периодически послать команду сброса таймера.

Лучше, чтобы за процедуру сброса таймеров отвечало целевое приложение, а не стороннее или системное (Cron, служба расписаний) по причине того, что вероятность сбоя в системе меньше, чем в приложении (хотя, у кого как).
Обмен информацией аналогичен консольному.

командаОписаниеПример
helpКраткая справка по командамhelp
LED1Управление светодиодом, по умолчанию выключенLED1 ON
LED1 OFF
RELAYУправление реле, по умолчанию включеноRELAY ON
RELAY OFF
KEY1Имитация нажатия кнопки 1, по умолчанию не нажатаKEY1 ON
KEY1 OFF
KEY2Имитация нажатия кнопки 2, по умолчанию не нажатаKEY2 ON
KEY2 OFF
C1Управление таймером 1, связанным с кнопкой 1.
Установка времени в секундах, максимальное значение 32767.
Для отключения функции таймера, необходимо задать время равное 0.
C1 RES
C1 SET 60
C1 SET 0
C2Управление таймером 2, связанным с кнопкой 2.
Установка времени в секундах, максимальное значение 32767.
Для отключения функции таймера, необходимо задать время равное 0.
C2 RES
C2 SET 60
C2 SET 0
USBУправление питанием USB, по умолчанию включеноUSB ON
USB OFF

В случае удачного выполнения команды возвращает «OK».
В случае некорректных данных возвращает «ERROR».
Признаком конца строки служит символ возврата каретки «\r». Также поддерживается режим «\r\n».

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

Устройство выполнено на базе контроллера STM32F103CA с аппаратной поддержкой USB. Библиотека работы с USB версии V4.0.0. Напряжение работы 3.3В получаем с помощью линейного стабилизатора из 5В на USB. Во всех управляющих цепях используются транзисторы в ключевом режиме. Также не забываем про защитный диод от токов самоиндукции в катушки реле (в моем случае он оказался встроенным).

Источник

Настройка Watchdog v5.0 в Linux Ubuntu/Debian

В данной статье рассматриваются процесс запуска китайского сторожевого таймера на оптронах (версия 5.0) в Linux Ubuntu/Debian.

Watchdog версии 5.0:

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

Настройка watchdog версии 5.0 в Linux Ubuntu/Debian

Для настройки программного обеспечения сначала нужно включить сторожевой таймер только в usb-разъем материнки, не включая проводов управления ресетом и включением/выключением в колодку.

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

Она покажет все подключенные к материнской плате по интерфейсу usb устройства, выдавая информацию такого вида:

В данном случае нас интересует только сторожевой таймер:

Затем нужно скачать дистрибутив для управления китайским вотчдогом (файл USBWatchdog_LINUX.zip) со страницы производителя finedar Или отсюда, а потом распаковать содержимое архива на контролируемый компьютер.

Затем нужно выполнить следующие действия:

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

В графическом интерфейсе достаточно просто открыть папку и в контекстном меню, вызываемом правой кнопкой мыши, поставить галочку «Разрешить запуск этого файла в качестве программы» на вкладке «Права».

Отредактировать файлы, находящиеся в папке PCWatchdog0201 в соответствии с их предназначением:

Функции каждого файла в папке PCWatchdog0201 следующие:

По умолчанию программа сторожевого мониторинга имеет такие предустановки:

Если нужно изменить эти параметры, нужно открыть скрипт start_watchdog.sh в текстовом редакторе и поменять его содержимое под свои нужды.

Содержимое этого файла выглядит следующим образом: Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

Рекомендуется изменить время ожидания (timeout) и время перезапуска, чтобы оно превышало время запуска системного программного обеспечения. Рекомендуемое значение timeout: 120-180 секунд.

Чтобы запустить программное обеспечение для сторожевого мониторинга с функцией контроля заданной программы, нужно скопировать все содержимое папки PCWatchdog0201 (кроме подпапки с драйверами) в папку с майнером, откуда запускать майнер скриптом start_watchdog.sh командой:

В файле monitor_process.sh в текстовом редакторе нужно изменить имя процесса в кавычках (process_name) на на имя использующейся программы майнинга:

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

Если для загрузки системы нужен пароль, то его нужно записать в файл _PWD_TEMP_:

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

Для автоматического внесения программы сторожевого таймера в автозагрузку нужно выполнить скрипт set_autostart.sh командой:

Чтобы немедленно перезапустить сторожевой таймер (для проверки его работоспособности и правильности подключений к материнской плате), нужно запустить файл restart_watchdog.sh командой:

Если соединение работает правильно, компьютер немедленно перезагрузится.

Если он не перезапускается немедленно, нужно проверить правильность подключений.

Правильно работающий сторожевой таймер отображает в консоли его настройки и время работы:

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

Если есть ошибка, нужно проверить, надежно ли сторожевой таймер соединен с USB-разъемом. Если все ОК, а таймер по прежнему не работает, нужно переустановить драйвер.

При появлении ошибкок типа:

нужно прописать в терминале полный путь к скрипту start_watchdog.sh и запускать его от имени суперпользователя.

Для установки драйверов (в случае отсутствия вотчдога в списке отображаемых устройств по команде lsusb) выполняют следующие действия:

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

Это выглядит следующим образом:

Watchdog linux что это. Смотреть фото Watchdog linux что это. Смотреть картинку Watchdog linux что это. Картинка про Watchdog linux что это. Фото Watchdog linux что это

После этого сторож должен нормально заработать.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *