使用Perl匹配整个字符串减去它的几个单词

时间:2012-07-04 15:34:01

标签: regex perl nagios

我有一个Nagios检查,它给我一个字符串,其中包含服务器上每个挂载使用的空间(df -h的结果)。字符串看起来像:

  /mnt/srv1: 22%used(1129MB/5191MB) /mnt/srv2: 59%used(1344MB/1713MB) /mnt/srv3: 97%used(2409MB/2576MB) /var/backup: 95%used(5976MB/69802MB) /mnt/srv1/dir1: 22%used(119MB/519MB) /: 22%used(119MB/514MB) /mnt/serv1: 59%used(144MB/1710MB) /mnt/srv1/dir2: 88%used(3034MB/3420MB) (>97%) : CRITICAL

我希望匹配整个字符串,而不是说以下两部分:/var/backup: 95%used(5976MB/69802MB)/mnt/serv1: 59%used(144MB/1710MB)我想要一个通用表达式,因为我想要删除的字符串可能会改变。

一般规则是我有一条路径,后跟该路径的空间规范。我正在尝试学习正则表达式,但似乎在这种情况下,我尝试过的所有东西都不起作用。

支票的工作原理如下:

   check_snmp_storage -H hostname -C comstring -m "this is the regular expression"

例如我试图

   check_snmp_storage -H hostname -C comstring -m "\/[a-zA-Z0-9:]+"

但它与我想要的不匹配

好的我管理了一些东西。以下检查:

   check_snmp_storage -H hostname -C comstring -m "([\/a-zA-Z0-9]+:\s[\/a-zA-Z0-9\(%]*MB\)|\(>97%\) : CRITICAL)"

完成它的工作并匹配我感兴趣的东西,但是如何从那些匹配中排除我之前提到的那些?

0 个答案:

没有答案