немного переделал, стало на много лучше, но всё равно не нравится
разбил на два скрипта
fromdump.sh
PHP код:
#!/bin/sh
#добавим интерфейс для мониторинга
iw phy phy0 interface add fish0 type monitor
#включим интерфейс
ifconfig fish0 up
#вечный цикл (tcpdump иногда падает)
while :
do
#tcpdump -e печатать заголовок пакета (в т.ч. SA)
# -l буферить построчно (лучше вывод на stdout)
# -tttt дата время
#sed -n -e '/SA:da/d' -e 's/\(........\).*SA:\([a-f0-9:]*\).*/\2 \1/p'
#-n ничего не выводить (кроме p)
#-e '/SA:da/d' удалим с фейковых маков
#-e 's/\(.\{19\}\).*SA:\([a-f0-9:]*\).*/\2 \1/p' заменить s/ шаблон1 (первыйе 19 символов (дата время)) .*SA: шаблон2 (мак адрес) .* /на шаблон2+шаблон1 и показать
#awk '{system( "sh /root/tores.sh "$0)}' запустить скрипт tores с параметрами (мак, дата, время)
tcpdump -i fish0 -e -l -tttt type mgt subtype probe-req or type data subtype null or type mgt subtype assoc-req or type mgt subtype reassoc-req|sed -n -e '/SA:da/d' -e 's/\(.\{19\}\).*SA:\([a-f0-9:]*\).*/\2 \1/p'|awk '{system( "sh /root/tores.sh "$0)}'
done
[свернуть]
tores.sh
PHP код:
#!/bin/sh
if ! grep -q "$1" /www/mdt
then
echo $1 >> /www/wh/res
fi
sed "s/$1.*/$1 $2 $3" /www/mdt|sort > /tmp/mdt
cp /tmp/mdt /www/mdt
[свернуть]
awk тормозит пока буфер не заполнится
и объеденить бы в всё в один скрипт