нужен regex для отбора файловый систем на предмет проверки заполнения:
все что начинается с /, но не /sys, /proc, /dev, /selinux или "/ещё что-нибудь"или может можно просто:
не /sys, /proc, /dev, /selinux или "/ещё что-нибудь"
Лучше опишите задачу более обще. В зависимости от того, как вы получаете список файлов и что дальше с ними делаете, возможны разные варианты. Например, с помощью команды find можно сделать что-нибудь вроде этого:find / '(' -path /sys -o -path /proc -o -path /dev -o -path /selinux -o -path "/ещё что-нибудь" ')' -prune -o -print
> Лучше опишите задачу более обще. В зависимости от того, как вы получаете
> список файлов и что дальше с ними делаете, возможны разные варианты.
> Например, с помощью команды find можно сделать что-нибудь вроде этого:
>find / '(' -path /sys -o -path /proc -o -path /dev -o
> -path /selinux -o -path "/ещё что-нибудь" ')' -prune -o -printинформация получается по snmp
Опять сессия начинается?echo "/sys/test" | perl -e 'my $t = <>; print $t unless $t =~ m@/(sys|proc|dev|selinux)(/|\Z)@;'
> Опять сессия начинается?
> echo "/sys/test" | perl -e 'my $t = <>; print $t unless
> $t =~ m@/(sys|proc|dev|selinux)(/|\Z)@;'Спасибо это работает в скрипте, но в уже имеющемся скрипте (http://nagios.manubulon.com/snmp_storage.html) не работает, простые регэкспы, типа '(/var|/sys)', работают.
> Спасибо это работает в скрипте, но в уже имеющемся скрипте (http://nagios.manubulon.com/snmp_storage.html)
> не работает, простые регэкспы, типа '(/var|/sys)', работают.а полный текст вашей команды?
>> Спасибо это работает в скрипте, но в уже имеющемся скрипте (http://nagios.manubulon.com/snmp_storage.html)
>> не работает, простые регэкспы, типа '(/var|/sys)', работают.
> а полный текст вашей команды?примерно такой:
/usr/lib/nagios/plugins/check_snmp_storage -H hostname -p port -l snmp_user -x snmp_auth_pass -w 90 -c 95 -m "(/sys|/proc)"
>>> Спасибо это работает в скрипте, но в уже имеющемся скрипте (http://nagios.manubulon.com/snmp_storage.html)
>>> не работает, простые регэкспы, типа '(/var|/sys)', работают.
>> а полный текст вашей команды?
> примерно такой:
> /usr/lib/nagios/plugins/check_snmp_storage -H hostname -p port -l snmp_user -x snmp_auth_pass
> -w 90 -c 95 -m "(/sys|/proc)"а что разве нельзя отдельными oid (для каждой ФС) получить нужные значения? или у вас список файловых систем меняется часто? или серваков тыща?
>>>> Спасибо это работает в скрипте, но в уже имеющемся скрипте (http://nagios.manubulon.com/snmp_storage.html)
>>>> не работает, простые регэкспы, типа '(/var|/sys)', работают.
>>> а полный текст вашей команды?
>> примерно такой:
>> /usr/lib/nagios/plugins/check_snmp_storage -H hostname -p port -l snmp_user -x snmp_auth_pass
>> -w 90 -c 95 -m "(/sys|/proc)"
> а что разве нельзя отдельными oid (для каждой ФС) получить нужные значения?
> или у вас список файловых систем меняется часто? или серваков тыща?машин много, нужно сделать универсальное решение - по имени, по OID'у нет желания
> /usr/lib/nagios/plugins/check_snmp_storage -H hostname -p port -l snmp_user -x snmp_auth_pass
> -w 90 -c 95 -m "(/sys|/proc)"Попробуйте так:
-m "^(?!/(sys|proc))(/|\Z)"
Или лучше так:
-m "^(?!/(sys|proc)(/|\Z))"
> Или лучше так:
> -m "^(?!/(sys|proc)(/|\Z))"Error compiling regexp (invalid regexp or memory prb)
>> -m "^(?!/(sys|proc)(/|\Z))"
> Error compiling regexp (invalid regexp or memory prb)Значит не поддерживает он регекспы с условием, пишите скрипт-обёртку который получает список каталогов и запускает check_snmp_storage с нужными параметрами.
>>> -m "^(?!/(sys|proc)(/|\Z))"
>> Error compiling regexp (invalid regexp or memory prb)
> Значит не поддерживает он регекспы с условием, пишите скрипт-обёртку который получает список
> каталогов и запускает check_snmp_storage с нужными параметрами.ясно, спасибо!