я делаю 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.