2015-09-25 69 views
0

我有一個腳本可以解析某個文件中的DNS信息。代碼看起來像這樣,並期望來自轉儲文件的兩行實例。如何從腳本中的grep命令中排除特定結果

nxdom_1st=`grep 'resulted in NXDOMAIN' $path_tmp/named.stats.tmp | awk '{ print $1 }' | grep -m1 ''` 
nxdom_2nd=`grep 'resulted in NXDOMAIN' $path_tmp/named.stats.tmp | awk '{ print $1 }' | sort -n | grep -m1 ''` 

接着,下面的腳本另一個命令告訴它減去結果:

if [ "$nxdom_1st" == '' ] 
then 
    nxdomain=0 
else 
    nxdomain=`expr $nxdom_1st - $nxdom_2nd` 

問題是,轉儲文件最終包含4線「導致NXDOMAIN」,2爲實際DNS區域和2從本地主機,腳本不能處理它,所以我得不到任何結果。例如,當轉儲文件包含了這樣一個規律:

   [localhost.localdomain] 
      [155.168.192.in-addr.arpa] 
      20 queries resulted in NXDOMAIN 
      20 queries resulted in NXDOMAIN 

在本例中爲「20」的臺詞是造成問題,因爲他們是從本地服務(我認爲),該查詢本身。因此,總是出現在問題行之前的「localhost.localdomain」。在服務器上,我不想使用localhost禁用對自身的查詢,那麼如果上面查找的行包含[155.168.192.in-addr.arpa]或[localhost],如何修改腳本以放棄結果。 LOCALDOMAIN]

以下是腳本解析的文件轉儲。不幸的是,現在有沒有查詢本地主機,所以你不會看到我上面發佈的內容。 localhost.localdomain和[155.168.192.in-addr.arpa]行都存在,只是在這2個stat轉儲中沒有任何查詢。同樣,只有在查詢列出這兩行時纔會出現此問題,這就是爲什麼我想知道是否可以修改腳本中的grep字符串以排除可能直接出現的任何「導致的NXDOMIAN」結果。喜歡的東西,「如果導致NXDOMAIN」被認爲是在10線下「的localhost.localdomain」,忽略/丟棄/等

--- Statistics Dump --- (1443199511) 
[id.server (view: _bind)] 
[authors.bind (view: _bind)] 
[hostname.bind (view: _bind)] 
[version.bind (view: _bind)] 
[8.B.D.0.1.0.0.2.IP6.ARPA] 
[B.E.F.IP6.ARPA] 
[A.E.F.IP6.ARPA] 
[9.E.F.IP6.ARPA] 
[8.E.F.IP6.ARPA] 
[D.F.IP6.ARPA] 
[0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA] 
[255.255.255.255.IN-ADDR.ARPA] 
[113.0.203.IN-ADDR.ARPA] 
[100.51.198.IN-ADDR.ARPA] 
[2.0.192.IN-ADDR.ARPA] 
[254.169.IN-ADDR.ARPA] 
[127.IN-ADDR.ARPA] 
[0.in-addr.arpa] 
[1.0.0.127.in-addr.arpa] 
[1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa] 
[localhost] 
[localhost.localdomain] 
[155.168.192.in-addr.arpa] 
[testdns.net] 
++ Per Zone Query Statistics ++ 
       53 UDP/IPv6 send errors 
       26 TCP/IPv4 connections accepted 
      179 UDP/IPv4 connections established 
       53 UDP/IPv6 socket connect failures 
       25 TCP/IPv4 sockets closed 
       53 UDP/IPv6 sockets closed 
      181 UDP/IPv4 sockets closed 
       2 TCP/IPv6 sockets opened 
       2 TCP/IPv4 sockets opened 
       54 UDP/IPv6 sockets opened 
      182 UDP/IPv4 sockets opened 
++ Socket I/O Statistics ++ 
[View: _bind (Cache: _bind)] 
       4 NXDOMAIN 
       1 !DS 
       5 DNSKEY 
       6 NSEC 
       30 RRSIG 
       9 DS 
       42 AAAA 
       20 NS 
       75 A 
[View: default] 
++ Cache DB RRsets ++ 
[View: _bind] 
       20 queries with RTT 100-500ms 
      159 queries with RTT 10-100ms 
       27 DNSSEC NX validation succeeded 
       63 DNSSEC validation succeeded 
       90 DNSSEC validation attempted 
       2 IPv6 NS address fetch failed 
       17 IPv6 NS address fetches 
       17 IPv4 NS address fetches 
       52 query retries 
       18 NXDOMAIN received 
      179 IPv4 responses received 
       53 IPv6 queries sent 
      179 IPv4 queries sent 
[View: default] 
[Common] 
++ Resolver Statistics ++ 
       2 IPv4 notifies sent 
++ Zone Maintenance Statistics ++ 
       54 queries caused recursion 
      625 queries resulted in NXDOMAIN 
      1270 queries resulted in non authoritative answer 
      645 queries resulted in successful answer 
      1251 responses with EDNS(0) sent 
      1270 responses sent 
      1251 requests with EDNS(0) received 
      1270 IPv4 requests received 
++ Name Server Statistics ++ 
[View: _bind] 
       16 DLV 
       22 DNSKEY 
       15 DS 
       39 AAAA 
       12 NS 
      128 A 
[View: default] 
++ Outgoing Queries ++ 
      1270 A 
++ Incoming Queries ++ 
      1270 QUERY 
++ Incoming Requests ++ 
+++ Statistics Dump +++ (1443199511) 
--- Statistics Dump --- (1443199211) 
[id.server (view: _bind)] 
[authors.bind (view: _bind)] 
[hostname.bind (view: _bind)] 
[version.bind (view: _bind)] 
[8.B.D.0.1.0.0.2.IP6.ARPA] 
[B.E.F.IP6.ARPA] 
[A.E.F.IP6.ARPA] 
[9.E.F.IP6.ARPA] 
[8.E.F.IP6.ARPA] 
[D.F.IP6.ARPA] 
[0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA] 
[255.255.255.255.IN-ADDR.ARPA] 
[113.0.203.IN-ADDR.ARPA] 
[100.51.198.IN-ADDR.ARPA] 
[2.0.192.IN-ADDR.ARPA] 
[254.169.IN-ADDR.ARPA] 
[127.IN-ADDR.ARPA] 
[0.in-addr.arpa] 
[1.0.0.127.in-addr.arpa] 
[1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa] 
**[localhost] 
[localhost.localdomain] 
[155.168.192.in-addr.arpa]** 
[testdns.net] 
++ Per Zone Query Statistics ++ 
       53 UDP/IPv6 send errors 
       25 TCP/IPv4 connections accepted 
      172 UDP/IPv4 connections established 
       53 UDP/IPv6 socket connect failures 
       24 TCP/IPv4 sockets closed 
       53 UDP/IPv6 sockets closed 
      174 UDP/IPv4 sockets closed 
       2 TCP/IPv6 sockets opened 
       2 TCP/IPv4 sockets opened 
       54 UDP/IPv6 sockets opened 
      175 UDP/IPv4 sockets opened 
++ Socket I/O Statistics ++ 
[View: _bind (Cache: _bind)] 
       4 NXDOMAIN 
       2 !DS 
       5 DNSKEY 
       6 NSEC 
       30 RRSIG 
       9 DS 
       43 AAAA 
       20 NS 
       75 A 
[View: default] 
++ Cache DB RRsets ++ 
[View: _bind] 
       20 queries with RTT 100-500ms 
      152 queries with RTT 10-100ms 
       24 DNSSEC NX validation succeeded 
       60 DNSSEC validation succeeded 
       84 DNSSEC validation attempted 
       2 IPv6 NS address fetch failed 
       17 IPv6 NS address fetches 
       17 IPv4 NS address fetches 
       52 query retries 
       16 NXDOMAIN received 
      172 IPv4 responses received 
       53 IPv6 queries sent 
      172 IPv4 queries sent 
[View: default] 
[Common] 
++ Resolver Statistics ++ 
       2 IPv4 notifies sent 
++ Zone Maintenance Statistics ++ 
       50 queries caused recursion 
      592 queries resulted in NXDOMAIN 
      1203 queries resulted in non authoritative answer 
      611 queries resulted in successful answer 
      1185 responses with EDNS(0) sent 
      1203 responses sent 
      1185 requests with EDNS(0) received 
      1203 IPv4 requests received 
++ Name Server Statistics ++ 
[View: _bind] 
       16 DLV 
       21 DNSKEY 
       14 DS 
       39 AAAA 
       12 NS 
      123 A 
[View: default] 
++ Outgoing Queries ++ 
      1203 A 
++ Incoming Queries ++ 
      1203 QUERY 
++ Incoming Requests ++ 
+++ Statistics Dump +++ (1443199211) 

好,其現在正在發生,這裏是一個新片段轉儲文件。注意localhost.localdomain行下的查詢信息:它在文件中發生兩次。

[localhost.localdomain] 
[155.168.192.in-addr.arpa] 
       1 queries resulted in NXDOMAIN 
       1 queries resulted in nxrrset 
       3 queries resulted in authoritative answer 
       1 queries resulted in successful answerenter code here 

[localhost] 
[localhost.localdomain] 
[155.168.192.in-addr.arpa] 
       1 queries resulted in NXDOMAIN 
       1 queries resulted in nxrrset 
       3 queries resulted in authoritative answer 
       1 queries resulted in successful answer 

基本上我需要的腳本來忽略這些查詢,只獲得我使用的DNS區域的。

+1

我有一個小與這個問題混淆。你能向我們展示一個示例文件和預期結果嗎? –

+0

腳本文件的示例或它分析的轉儲文件的示例? – user53029

+0

它解析的轉儲文件和預期的結果。腳本看起來沒有必要,因爲您提供的是解析所在的行。 –

回答

0

在情況下,如果它的結果​​只有兩行所有的時間,那麼你可以grep命令sed命令

使用grep:

grep -A 2 155.168.192.in-addr.arpa $path_tmp/named.stats.tmp 

使用SED:

sed -n -e '/155.168.192.in-addr.arpa/,+2 p' $path_tmp/named.stats.tmp 
+0

2行是我期望看到的。這是當我看到4行導致問題。 – user53029

相關問題