Показать "iftop" в Интернете

Я делаю iftop -i eth1 > out.txt

Он производит файл с "зашифрованным" содержимым пользовательского интерфейса, таким как[(B[)0[[1;80r[[mO[[?7h[[?1h[=[[H[[J[[0;7mO Listening on eth1 [[1;48H[[mO12.5Kb

Можно ли как-то отобразить это как вывод веб-xhtml?

cat out.txt на моей консоли выдает нормальное окно iftop, но когда я делаю то же самое через Интернет, я получаю содержимое выше. Я понимаю, что это "управляется" на уровне ядра. Возможно ли выполнить задачу, которую я хочу выполнить?

3 ответа

Решение

Вероятно, нецелесообразно получать непрерывный вывод ncurses.

Вы, вероятно, можете попытаться получить одинаковый вывод с помощью ntop. Он немного больше, имеет много других функций и "красивее".

То, что вы называете "зашифрованным содержимым пользовательского интерфейса", - это управляющие коды терминала, которые инструктируют курсор перемещаться в разные части экрана и менять цвет. Это то, что делает вывод iftop больше похожим на графический интерфейс, а не просто на прокрутку строк текста. Почти все интерактивные консольные программы используют эти коды терминала.

iftop предназначен для создания интерактивного, "графического" дисплея, и отключить его не представляется возможным. Вы можете попытаться разобрать и удалить их, но для этого требуется детальное знание длины и значения каждого контрольного кода, который вы можете найти в Интернете, но, вероятно, не стоит усилий.

Вы можете буквально запустить iftop внутри эмулятора терминала Javascript, который понимает эти управляющие коды и преобразует их в HTML, такой как Gate One, Shell in a Box или AjaxTerm. Он по-прежнему будет выглядеть как консольное приложение для пользователя, но ему не нужно устанавливать или запускать SSH-клиент.

Возможно, вы захотите исследовать другие инструменты. Например, pmacct может собирать информацию о потоках, аналогичную iftop, и сохранять ее в базе данных SQL или в таблице в памяти, к которой вы можете обращаться с помощью инструмента командной строки. Это может генерировать выходные данные, которые вы можете анализировать из веб-приложения. Сервер pmacct от netgraph записывает эти выходные данные в формате JSON для интерпретации клиентом javascript, работающим в браузере и обновляемым в режиме реального времени.

Вы также можете взломать исходный код iftop, чтобы получить нужную информацию в более удобном для Интернета формате, например, AJAX.

iftop -t > out.txt

опция -t выполняет работу по удалению всего кода терминала

Инструкция iftop гласит следующее:

-t text output mode
      Use text interface without ncurses and print the output to STDOUT.
Другие вопросы по тегам