如何使用正则表达式忽略或过滤centreon_plugins.pl的部分结果?
实际例子:
我试图监控所有Linux服务器上的inode(RHEL 6),所以我使用以下命令:
perl centreon_plugins.pl --plugin=os::linux::snmp::plugin --mode=inodes --hostname=servname --snmp-version=2c --snmp-community=mycomm --warning 80 --critical 90 --name --regexp --verbose
这将为我提供所有文件系统上的所有inode,但它总是处于警报状态,例如,由于/ proc 此外,这将监视安装在nfs共享上的我的主目录。
所以我想排除一些字符串,如home,proc,...
如果我尝试使用它:
perl centreon_plugins.pl --plugin=os::linux::snmp::plugin --mode=inodes --hostname=servname --snmp-version=2c --snmp-community=mycomm --warning 80 --critical 90 --name --regexp --diskpath=/?!proc/ --verbose
我会收到这样的错误:
-bash: !proc: event not found
任何想法?
答案 0 :(得分:0)
必须引用--diskpath=/?!proc/
。 Bash解释了角色!
尝试:
perl centreon_plugins.pl --plugin=os::linux::snmp::plugin --mode=inodes --hostname=servname --snmp-version=2c --snmp-community=mycomm --warning 80 --critical 90 --name --regexp "--diskpath=/?!proc/" --verbose
答案 1 :(得分:0)
正确的语法是:
--diskpath='^(?!(/proc)$)'
要驱逐多个FileSysyems:
--diskpath='^(?!(/proc.*|/sys|/dev/pts|/var/lib/nfs/rpc_pipefs)$)'