Назад | Перейти на главную страницу

Показывать 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, но когда я делаю то же самое через Интернет, я получаю содержимое выше. Я так понимаю, что это «управляется» на уровне ядра. Возможна ли задача, которую я хочу выполнить?

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

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

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

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

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

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

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

iftop -t > out.txt

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

В руководстве iftop говорится следующее:

-t text output mode
      Use text interface without ncurses and print the output to STDOUT.