【发布时间】:2015-03-16 07:34:32
【问题描述】:
伙计们,我正在监视来自我的一台互联网设备的流量。我已将 Raspberry Pi 设置为桥接器。当我运行这个脚本时(保存并设置为可执行的“间谍”)
sudo tcpdump -A -n -p -l -i eth0 -s0 -w - tcp dst port 80 | stdbuf -oL strings -n10
我看到终端屏幕上显示的感兴趣的记录:
id=11824&mt=a&length=A0580&density=A018600000&battery=normal&watts=4
id=04382&mt=b&length=A0970&density=A005111112&battery=normal&watts=4"
id=02606&mt=c&length=A0770&density=A005800000&battery=normal&watts=4'
id=02174&mt=d8&length=A0990&density=A005222224&battery=normal&watts=4+
id=11824&mt=a&length=A0580&density=A018600000&battery=normal&watts=4/
我创建了这个简单的 Python 程序来显示数据。
#!/usr/bin/env python
import sys
# test data
#f = open('/mnt/usbdrive/output/data.txt', 'r')
i=0
try:
# for line in f:
for line in sys.stdin:
i=i+1
print "\ninput line is \n--", line, "--\n"
except KeyboardInterrupt:
print('Done', i)
# f.close()
如果我将这些记录剪切并粘贴到一个文件中并打开该文件进行读取(注释行),它可以正常工作。但是,如果我尝试将脚本输出通过管道传输到我的 Python 程序,它就会设置在那里。
spy | python /mnt/usbdrive/pgms/TestPipe.py
当我在几分钟后断开脚本时,它说它已经处理了许多记录/数据包,但 Python 输出显示没有读取任何行,即我输出为零。
Raspberry Pi 正在运行 Raspian 操作系统(我猜是 Debian wheezy)。
我做错了什么?.....RDK
【问题讨论】:
标签: pipe raspberry-pi