У меня есть /var/log/pihole.log
, который содержит такие строки:
Nov 29 18:49:33 dnsmasq[13568]: query[AAAA] firebaselogging-pa.googleapis.com from 192.168.0.10
Nov 29 18:49:33 dnsmasq[13568]: query[A] firebaselogging-pa.googleapis.com from 192.168.0.10
Nov 29 18:49:41 dnsmasq[13568]: query[AAAA] app-measurement.com from 192.168.0.10
Nov 29 18:49:41 dnsmasq[13568]: query[A] app-measurement.com from 192.168.0.10
Nov 29 18:49:57 dnsmasq[13568]: query[AAAA] in.treasuredata.com from 192.168.0.10
Nov 29 18:49:57 dnsmasq[13568]: query[A] in.treasuredata.com from 192.168.0.10
arp -
дает мне совпадение между MAC и IP:
root@raspberrypi:/var/log# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.0.81 ether c8:5b:76:e1:3c:6f C wlan0
192.168.0.136 ether 14:ab:c5:09:de:81 C wlan0
192.168.0.207 ether 68:c6:3a:a2:f4:e1 C wlan0
192.168.0.213 ether 60:01:94:70:e9:9c C wlan0
192.168.0.67 ether 8c:fe:57:51:1d:51 C wlan0
Я хочу создать новый живой файл pihole2.log
с MAC в конце. Это мой сценарий:
tail -f /var/log/pihole.log|grep "query" |grep -v "<name"| awk 'NR==1{print $0,"MIME_type"; next}
{ cmd = "/var/log/nico.sh " $8
cmd | getline result
close(cmd)
print $1,$2,$3,$6,$8, result }'
Я использую nico.sh
для выполнения поиска arp
. nico.sh
содержит:
#!/bin/sh
param=$1
cmd="$(arp -n|awk '$1 == x {print $3}' x=$param)"
echo $cmd
Скрипт не выполняется, пока pihole.log
показывает дополнительные строки.