当我执行命令 airodump-ng mon0 >> output.txt 时, output.txt 为空。我需要能够运行 airodump-ng mon0 并在大约 5 秒后停止命令,然后才能访问其输出。我应该从哪里开始寻找任何想法?我正在使用bash。
问问题
16468 次
3 回答
5
将命令作为后台进程启动,休眠 5 秒,然后终止后台进程。您可能需要重定向与 STDOUT 不同的流来捕获文件中的输出。该线程提到了 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
于 2013-07-21T20:29:38.363 回答
5
您可以使用以下命令将输出写入文件:
airodump-ng [INTERFACE] -w [OUTPUT-PREFIX] --write-interval 30 -o csv
这将为您提供一个 csv 文件,其名称将以[OUTPUT-PREFIX]
. 该文件将每 30 秒更新一次。如果您提供像 /var/log/test 这样的前缀,那么文件将进入 /var/log/ 并且看起来像 test-XX.csv
然后,您应该能够在 airodump 运行时通过任何其他工具访问输出文件。
于 2015-11-24T14:47:46.737 回答
1
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
第一种方法在使用其他程序/应用程序解析输出时更好。
于 2017-04-24T15:25:43.453 回答