3

Мне нужно устранить неполадки сеанса Telnet и отправить сохранить его результаты другому лицу. Когда я использую перенаправление, я сохраняю содержимое моего сеанса, но не вижу его на консоли.

Как передать текущий терминал / программу и показать его на текущей консоли.

Когда я использую команду ниже, я могу сохранить вывод программы, но я не могу увидеть его на консоли.

telnet ADDRESS PORT >> myoutputfile

Я мог бы использовать опцию вывода telnet, я ищу независимый от команды способ сделать это.

Этот вопрос специфичен для сеанса telnet, но относится к любой другой команде, в том числе к тем, у которых нет опции "сохранить вывод в файл".

2 ответа2

6

Самое простое решение - использовать tee:-

telnet ADDRESS PORT | tee -a myoutputfile

Это копирует выходные данные как в стандартный вывод, так и в указанное имя файла, и добавляется опция -a , как это было с перенаправлением >> .

1

Есть хитрость в использовании вывода ошибок в качестве второго буфера для вывода на 2 устройства.

Ваша команда будет:

telnet ADDRESS PORT >&2 2>>myoutputfile

Это добавляет вывод в myoutputfile, а также записывает все, что выходит на консоль.

>&2: Копирует вывод из потока 1 (консоль) в поток 2 (ошибка)

2>>: Это гарантирует, что все данные из потока 2 отправляются в файл.

Если вы не хотите рисковать добавлением журнала ошибок в файл, измените 2 на 3 в обеих строках. (>&3 3>>file)

РЕДАКТИРОВАТЬ: Я только что заметил тег Linux. Это написано для Windows, но все еще может работать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .