Мониторинг только для чтения - PullRequest
0 голосов
/ 20 февраля 2020

Так что я пытаюсь сделать мониторинг файловой системы только для чтения для всех моих серверов Centos. Сначала это казалось легким, но потом я столкнулся с конфликтом. В основном я сделал скрипт для проверки и zabbix для мониторинга результата, но у каждого сервера есть 1 монтируемый файл только для чтения, который мешает мне получить правильные данные.

#!/bin/bash

if cat /proc/mounts | grep RO  | grep "\srw" > /dev/null
    then
            echo 1
    else
            echo 0

fi

Так что этот скрипт будет отлично проверять монтирования только для чтения, но результат для "cat / proc / mounts" всегда будет приводить к "tmpfs / sys / fs / cgroup tmpfs ro, seclabel, nosuid, nodev, noexe c, mode = 755 0 0", что означает, что мониторинг всегда скажет мне, что я иметь монтировку только для чтения. Кто-нибудь знает, как сделать так, чтобы скрипт пропускал это, или есть даже лучший способ мониторинга только для чтения?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

cat бесполезен , и вы, вероятно, хотите избежать создания нескольких grep s в конвейере.

if awk '/RO/ && !/tmpfs/ && /[ \t]rw/ { print 1; true=1; exit 0}
    END { if(!true) { print 0; exit 1 }}' /proc/mounts

\s escape - Perl расширение, которое обычно не переносимо; в Awk и portable grep вы можете использовать явный класс символов или символ POSIX c class [[:space:]].

0 голосов
/ 20 февраля 2020

Попробуйте отфильтровать tmpfs, используя: | grep -v tmpfs

...