我有一個腳本可以解析某個文件中的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區域的。
我有一個小與這個問題混淆。你能向我們展示一個示例文件和預期結果嗎? –
腳本文件的示例或它分析的轉儲文件的示例? – user53029
它解析的轉儲文件和預期的結果。腳本看起來沒有必要,因爲您提供的是解析所在的行。 –