возвращать строки, содержащие числа в диапазоне в определенном столбце, но только если столбец содержит определенное число

Во-первых, если это специальная услуга, она относится к /etc/systemd/system. /lib/systemdпредназначен для файлов, предоставляемых пакетом -.

Во-вторых, служба, скорее всего, дает сбой, и systemd неоднократно пытается перезапустить ее, поэтому вам нужно выяснить, почему происходит сбой. Проверьте сервисные журналы с помощью:

journalctl -e -u swatchWATCH

Возможно, в основном журнале будут дополнительные подробности:

journalctl -e

Наконец, убедитесь, что он работает непосредственно в CLI.:

/usr/bin/swatch --config -file=/home/kristjan/.swatchrc --ввод -запись -separator="\n \n " --хвост -file=/var/log/snort/alert --демон

Я вижу, вы используете опцию --daemon. Это частая ошибка с systemd. Systemd демонизирует для вас. Попробуйте удалить эту опцию.

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

0
28.03.2021, 15:09
1 ответ

Это условие awk напечатает эти строки:

awk '$2 != 4 || $3 > 85 || $3 < 50' input

Он печатает строку, когда второй столбец не равен 4, или третий столбец больше 85, или третий столбец меньше 50.

Этот логический эквивалент должен иметь тот же эффект:

awk '! ($2 == 4 && $3 <= 85 && $3 >= 50)' input

Как отмечалось в комментариях, более понятным способом записи сравнения диапазонов для min <= num <= maxбудет min <= num && num <= max. Так что:

awk '! ($2 == 4 && 50 <= $3 && $3 <= 85)' input
awk '$2 != 4 || $3 < 50 || 85 < $3' input
4
28.04.2021, 22:55

Теги

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