我愿意iftop -i eth1 > out.txt
它确实生成了带有“加密” UI 内容的文件,例如
[(B[)0[[1;80r[[mO[[?7h[[?1h[=[[H[[J[[0;7mO Listening on eth1 [[1;48H[[mO12.5Kb
是否可以以某种方式将其显示为 Web xhtml 输出?
cat out.txt
在我的控制台上确实会产生正常的 iftop 窗口,但当我在网络上执行相同操作时,我得到的是上述内容。我理解它是在内核级别“管理”的。我想要执行的任务可以完成吗?
答案1
获取连续的 ncurses 输出可能不太实际。
您可以尝试使用以下方法获得类似的输出ntop。它更大一些,具有许多其他功能,而且“更漂亮”。
答案2
所谓的“加密 UI 内容”是终端控制代码,用于指示光标移动到屏幕的不同部分并改变颜色。这使得 iftop 的输出看起来更像图形界面,而不仅仅是滚动的文本行。几乎所有交互式控制台程序都使用这些终端代码。
iftop 旨在生成交互式“图形”显示,似乎无法关闭此功能。您可以尝试解析并删除它们,但这需要详细了解每个控制代码的长度和含义,您可以在网上找到这些信息,但可能不值得付出努力。
您可以在理解这些控制代码并将其转换为 HTML 的 Javascript 终端仿真器(例如 Gate One、Shell in a Box 或 AjaxTerm)中运行 iftop。对于用户来说,它仍然看起来像一个控制台应用程序,但他们不需要安装或运行 SSH 客户端。
您可能想要研究其他工具。額定例如,可以收集有关流量的信息,类似于 iftop,并将其存储在 SQL 数据库或内存表中,您可以使用命令行工具进行查询。这可以生成您可以从 Web 应用程序中解析的输出。netgraph 的pmacct 服务器以 JSON 格式写入此输出,以便由在浏览器中运行并实时更新的 javascript 客户端进行解释。
您还可以破解 iftop 源代码,以更适合网络的格式(例如 AJAX)返回您想要的信息。
答案3
iftop -t > out.txt
-t 选项负责删除所有终端代码
iftop 手册说明如下:
-t text output mode
Use text interface without ncurses and print the output to STDOUT.