当我执行命令airodump-ng mon0>> output.txt,output.txt为空。我需要能够运行airodump-ng mon0并在大约5秒后停止命令,而不是访问其输出。有什么想法我应该开始看?我正在使用bash。
答案 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
第一种方法更适合使用其他程序/应用程序解析输出。