Repeating the same command while looking for differences
Overview
The watch
command, in conjunction with the -d
(display differences) option and a carefully curated input set, will generate a “top
like” interface for realtime display of data sets. In this example, I am processing DNS queries logged by Zeek.
Details
This command:
watch -d 'cat dns.log | ../../bin/zeek-cut -d query | sort | uniq -c | sort -rn | head -50'
Outputs the following information, updated every 2 seconds, with changes highlighted in white:
Every 2.0s: cat dns.log | ../../bin/zeek-cut -d query | sort | uniq -c | sort -rn | head -50 zeek: Mon Jan 4 18:49:59 2021
788 www.google.com
333 google.com
323 api.smartthings.com
298 clients4.google.com
127 play.googleapis.com
127 e16126.dscg.akamaiedge.net
109 lh3.googleusercontent.com
92 gateway.fe.apple-dns.net
75 www.gstatic.com
71 cf-st.sc-cdn.net
60 wirelessdevicestats.googleapis.com
58 www.youtube.com
58 i.ytimg.com
56 proxy.example.com
54 app-measurement.com
51 clients3.google.com
50 wustl.edu
48 time.google.com
48 a2047.mm2.akamai.net
45 206.8.217.172.in-addr.arpa
43 safebrowsing.googleapis.com
43 e28622.api5.akamaiedge.net
42 us-east4-gcp.api.snapchat.com
42 mesu.apple.com
42 mesu-cdn.origin-apple.com.akadns.net