从airodump-ng读取实时输出

时间:2013-07-21 20:05:17

标签: bash redirect file-io

当我执行命令airodump-ng mon0>> output.txt,output.txt为空。我需要能够运行airodump-ng mon0并在大约5秒后停止命令,而不是访问其输出。有什么想法我应该开始看?我正在使用bash。

3 个答案:

答案 0 :(得分:5)

以后台进程启动命令,休眠5秒,然后终止后台进程。您可能需要重定向与STDOUT不同的流以捕获文件中的输出。 This thread提到STDERR(将是FD 2)。我无法在此验证,但您可以使用strace检查描述符编号。该命令应该显示如下:

$ strace airodump-ng mon0 2>&1 | grep ^write
...
write(2, "...

write语句中的数字是文件描述符airodump-ng写入。

脚本可能看起来有点像这样(假设需要重定向STDERR):

#!/bin/bash

{ airodump-ng mon0 2>> output.txt; } &
PID=$!

sleep 5

kill -TERM $PID
cat output.txt

答案 1 :(得分:2)

您可以使用以下命令将输出写入文件:

airodump-ng [INTERFACE] -w [OUTPUT-PREFIX] --write-interval 30 -o csv

这将为您提供一个csv文件,其名称将以[OUTPUT-PREFIX]为前缀。此文件将在每30秒后更新一次。如果你给出像/ var / log / test这样的前缀,那么文件将进入/ var / log /并且看起来像test-XX.csv

然后,当airodump正在运行时,您应该能够通过任何其他工具访问输出文件。

答案 2 :(得分:0)

airodump-ng 1.2 rc4,您应该使用以下命令:

timeout 5 airodump-ng -w my --output-format csv --write-interval 1   wlan1mon 

在此命令完成后,您可以通过查看my-01.csv来访问它的输出。请注意,输出文件不是CSV格式。

您的命令无效,因为airodump-ng输出到stderr而不是stdout!因此,以下命令是您的更正版本:

airodump-ng mon0 &> output.txt

第一种方法更适合使用其他程序/应用程序解析输出。