Как преобразовать вывод терминала в HTML формат файла - PullRequest
2 голосов
/ 29 февраля 2020

Я использовал здесь «ansi2 html. sh» http://www.pixelbeat.org/scripts/ansi2html.sh, чтобы выполнить свою работу.

ls -lrt /web/htdocs | tail -12 | ./ansi2html.sh --bg=dark >test.html

Я использовал ansible на локальном хосте наличие Linux ОС для запуска этого на нескольких хостах, которые генерировали файлы html на каждом из удаленных хостов, а затем я, наконец, перетянул все файлы html со всех удаленных на мой локальный ansible сервер.

Это работало нормально для всех Linux систем.

Однако, «ansi2 html. sh» имеет зависимость gawk, которой нет в наборе производственных систем AiX 6.1 и 7.

Я получаю эту ошибку:

./ansi2html.sh[38]: gawk:  not found

Поскольку мой AiX размещает производственное приложение; установка gawk не рекомендуется.

Я не знаю, может ли быть решение получить вывод ls -lrt со всех хостов AiX и затем передать этот вывод в "ansi2 html. sh" на локальном ansible linux сервере, имеющем gawk. Не уверен, что это сработает, и если да, то как? Примечание: я получу sh вывод, который будет выглядеть так же, как в подсказке терминала замазки.

Могу ли я получить решение для AiX, чтобы я мог использовать ansible для получения html файлов с вывод ls -lrt со всех хостов AiX?

Ответы [ 2 ]

2 голосов
/ 29 февраля 2020

(уже записано как комментарий). Вы можете использовать ssh, чтобы выполнить команду на удаленном компьютере и обработать вывод на локальном компьютере. Пример:

ssh user@aixhost 'ls -lrt /web/htdocs | tail -12' |
./ansi2html.sh --bg=dark >test.html

Также можно перенаправить стандартный ввод, например:

ssh user1@host1 'cd frompath; tar -czf - sendme/' |
ssh user2@host2 'cd topath; tar -xzf -'

Примечание: я ничего не знаю о Ansible, но я слышал, что с ним можно почти все, что вы могли бы сделать без него.

1 голос
/ 29 февраля 2020

Использование ага Ansi HTML Адаптер для этой задачи работает очень хорошо:

ls -lrt ~ | tail -12 | aha --black --title "Home list"> ls.html

Пример использования html2text

Установка:

sudo apt install aha
sudo apt install html2text

Это возможно для преобразования кодировки ANSII с использованием iconv:

Принудительное кодирование из US-ASCII в UTF-8 (iconv)

Наконец, все, что также выполнимо из php, что должно работать везде. Быстрое основание для преобразования html в текст с использованием php:

php -r 'echo htmlspecialchars(trim(strip_tags("<div> <b>Hello</b> world</div>")));'
// Hello world

ANSII в текст из php с использованием REGEXes:

$ansii = " |[0m [34m▓▓▓▓▓[0m";
echo preg_replace("/\x1B\[[0-9;]*[JKmsu]/","",$ansii);

{ ссылка }

...