2016-06-10 10 views
0

Ich derzeit ein Problem. Wenn ich das dnsmasq Protokoll öffne, sieht es so aus:Analysieren Sie die Protokolldatei von Dnsmasq

Jun 10 17:50:00 dnsmasq[21796]: query[A] isatap.lan from 115.34.22.160 
Jun 10 17:50:00 dnsmasq[21796]: cached isatap.lan is NXDOMAIN-IPv4 
Jun 10 17:50:21 dnsmasq[21796]: query[A] isatap.lan from 115.34.22.160 
Jun 10 17:50:21 dnsmasq[21796]: cached isatap.lan is NXDOMAIN-IPv4 
Jun 10 17:50:31 dnsmasq[21796]: query[A] isatap.lan from 115.34.22.160 
Jun 10 17:50:31 dnsmasq[21796]: cached isatap.lan is NXDOMAIN-IPv4 
Jun 10 17:50:37 dnsmasq[21796]: query[A] isatap.lan from 115.34.22.160 
Jun 10 17:50:37 dnsmasq[21796]: cached isatap.lan is NXDOMAIN-IPv4 
Jun 10 17:50:40 dnsmasq[21796]: query[A] zyx.qq.com from 115.34.22.160 
Jun 10 17:50:40 dnsmasq[21796]: forwarded zyx.qq.com to 114.114.114.114 
Jun 10 17:50:40 dnsmasq[21796]: forwarded zyx.qq.com to 223.5.5.5 
Jun 10 17:50:40 dnsmasq[21796]: reply zyx.qq.com is 123.151.43.51 
Jun 10 17:50:40 dnsmasq[21796]: reply zyx.qq.com is 183.60.62.158 
Jun 10 17:50:40 dnsmasq[21796]: reply zyx.qq.com is 113.108.1.90 
Jun 10 17:50:42 dnsmasq[21796]: query[A] isatap.lan from 115.34.22.160 
Jun 10 17:50:42 dnsmasq[21796]: cached isatap.lan is NXDOMAIN-IPv4 
Jun 10 17:50:52 dnsmasq[21796]: query[A] isatap.lan from 115.34.22.160 
Jun 10 17:50:52 dnsmasq[21796]: cached isatap.lan is NXDOMAIN-IPv4 
Jun 10 17:50:58 dnsmasq[21796]: query[A] ic.wps.cn from 115.34.22.160 
AND ETC. 

Es ist sehr schwierig für uns, es zu analysieren. Hat jemand eine Idee, nur die abgefragte Domain zu zeigen, die so sein sollte? diese

isatap.lan 
zyx.qq.com 
ic.wps.cn 
AND ETC. 

Allerdings habe ich versucht: http://www.tannerwilliamson.com/analyzing-dnsmasq-log-with-awk/1610/

und dessen Ausgang Ich mag dieses:

[email protected]:/home# awk -f /home/dnsmasq.awk /var/log/dnsmasq.log | less 
            name |  nb | forwarded | answered from cache 
           irs01.net |   1 |   1 |   0 
927662-0-2081296634-261190004.ns.124-14-16-250-ns.dns-spider.ffdns.net |   1 |   1 |   0 
         blog.sina.com.cn |   4 |   4 |   1 
927655-0-2081296634-261190004.ns.124-14-16-250-ns.dns-spider.myxns.cn |   1 |   1 |   0 
          www.baidu.com |   2 |   2 |   0 
*    careers.stackoverflow.com |  10 |  13 |   0 
       blender.stackexchange.com |   2 |   2 |   0 
974449-0-2081296634-261190004.ns.124-14-16-250-ns.dns-spider.myxns.cn |   1 |   1 |   0 
         img.iknow.bdimg.com |   2 |   1 |   1 
*       smarterer.com |   2 |   3 |   0 
          a.disquscdn.com |   1 |   1 |   0 
927648-0-2081296634-261190004.ns.124-14-16-250-ns.dns-spider.myxns.cn |   1 |   1 |   0 
       physics.stackexchange.com |   6 |   5 |   4 
*    area51.stackexchange.com |   2 |   3 |   0 
        iknow02.bosstatic.bdimg.com |   2 |   1 |   1 
         passport.baidu.com |   1 |   1 |   0 
        webapps.stackexchange.com |   5 |   4 |   4 

Es ist etwas anderes, als was ich will. Kann mir jemand helfen? Danke für die Hilfe!

+0

Was haben Sie bisher versucht? – fedorqui

+0

@fedorqui Ich versuchte es: [link] (http://www.tannerwilliamson.com/analyzing-dnsmasq-log-with-awk/1610/) aber es ist ein bisschen anders als das, was ich will ... – WangTongze

+0

Nein, [ Bearbeiten] um zu zeigen, was du probiert hast. Beiträge sollten [mcve] enthalten und in sich abgeschlossen sein – fedorqui

Antwort

0

Ein einfaches Skript awk könnte dafür ausreichen, vorausgesetzt, das von Ihnen angezeigte Logfile bleibt intakt.

awk '!seen[$6]++ {print $6}' file 

wird die Ausgabe als

ic.wps.cn 
isatap.lan 
zyx.qq.com 

produzieren Die Logik einfach ist, ist es parst jeden Eintrag in Spalte sechs und fügt sie in das Array seen und druckt das Element nur dann, wenn es nicht vorher zu sehen ist.

P.S. Wenn sich die Reihenfolge der Spalten in der Protokolldatei in Zukunft ändern kann, funktioniert der Befehl awk möglicherweise nicht, da er nur auf den Index der Spalte angewiesen ist, um die Ergebnisse zu erhalten.

Verwandte Themen