Использование регулярных выражений для анализа IP-адресов из журналов

Для мониторинга/восстановления контроля над «нестабильным»/зависшим сервером я бы посоветовал использовать аппаратное обеспечение или, если это не удается, программный сторожевой таймер; в Debian вы можете установить его с помощью:

sudo apt-get install watchdog

Затем вы редактируете /etc/watchdog.conf и добавляете пороги или тесты; по моему мнению, сторожевой таймер также активируется таким образом, что если ядро ​​​​не видит его в течение некоторого времени, оно перезагружается. например если программная подпрограмма не общается в фиксированное время с /dev/watchdog0 или чем-то подобным.

Например, вы можете определить пороги нагрузки в /etc/watchdog.conf:

max-load-1             = 40
max-load-5             = 18
max-load-15            = 12

Имейте в виду, что некоторые платы/чипсеты поставляются со встроенными сторожевыми таймерами; если я не ошибаюсь, Arm A20 — один из них.

От man watchdog

Ядро Linux может перезагрузить систему, если возникнут серьезные проблемы. обнаружено. Это может быть реализовано с помощью специального сторожевого устройства или через чуть менее надежный программный сторожевой таймер внутри ядра. В любом случае должен быть демон, сообщающий ядру система работает нормально. Если демон перестанет это делать, система перезагрузить.

сторожевой пес — такой демон. Он открывает /dev/watchdog и продолжает писать в достаточно часто, чтобы ядро ​​не сбрасывалось, по крайней мере, один раз за минута. Каждая запись откладывает время перезагрузки еще на одну минуту. После минута бездействия аппаратного сторожевого таймера вызовет сброс. В в случае программного сторожевого таймера возможность перезагрузки будет зависеть от состояние машин и прерываний.

Демон сторожевого таймера может быть остановлен без перезагрузки, если устройство /dev/watchdog закрыто корректно, если только ваше ядро ​​не скомпилировано с включенной опцией CONFIG_WATCHDOG_NOWAYOUT.

см. также Raspberry Pi и Arduino: создание надежных систем с помощью сторожевых таймеров

0
18.03.2017, 04:50
2 ответа

\ d - это Perl-совместимое расширение регулярных выражений (PRCE): ваша версия grep может поддерживать это с параметром -P

grep -P '\d{1,3}\.\d{1,3}\.\d\.\d{1,3}'

В противном случае вы можете использовать [0-9] для десятичных цифр; однако обратите внимание, что фигурные скобки являются буквальными в основных регулярных выражениях, поэтому вам либо нужен расширенный режим -E , либо нужно их экранировать

grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]\.[0-9]{1,3}'

или

grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\.[0-9]\{1,3\}'
2
28.01.2020, 02:19

Вы начинаете с использования правильный формат вывода для Nmap для такого рода вещей. Параметр Grepable в Nmap ( -oG ) обеспечивает вывод в удобном для анализа формате, который согласован между версиями, в отличие от обычного вывода, "удобочитаемого человеком". Вот как получить список всех систем с открытым портом 25:

nmap -p 25 --open 10.11.1.1-254 -oG - | awk '/^Host/{print $2}'

Nmap выдаст строку, подобную этой:

Host: 64.13.134.52 (scanme.nmap.org)    Ports: 25/open/tcp//smtp///

И команда awk сопоставит ее на основе начала строки "Host" и напечатает второе поле, Айпи адрес.

2
28.01.2020, 02:19

Теги

Похожие вопросы