Есть ли способ отправить непрерывный поток из вывода команды на удаленный слушатель - PullRequest
4 голосов
/ 29 октября 2011

Я использую netcat для Unix.

когда я запускаю python script.py &> logfile.txt, он непрерывно захватывается.

Чтобы скопировать это удаленно, я попытался nc -l -p 8011 на слушателе (клиент) и следующее для отправителя (хост или сервер):

  1. python script.py &> nc 127.0.0.1 8011
  2. python script.py > nc 127.0.0.1 8011
  3. nc 127.0.0.1 8011 < python script.py

Но, похоже, ничего не работает. Пожалуйста, помогите.

Ответы [ 2 ]

5 голосов
/ 29 октября 2011

Это то, что вам нужно?

Получатель:

nc -l 8011 >logfile.txt

Отправитель:

python script.py 2>&1 | nc 127.0.0.1 8011

Убедитесь, что сначала запустили код получателя.


РЕДАКТИРОВАТЬ : Если вы не в курсе, существует множество различных версий netcat ;все они принимают несколько разные аргументы (например, nc.traditional в Debian хочет nc -l -p 1234 прослушивать порт 1234, тогда как BSD nc (например, OS X) просто хочет nc -l 1234, а ncat может выдать интересную ошибку, если вы не используетефлаг -4, если ваш хост не поддерживает IPv6) - прочитайте справочные страницы, чтобы узнать, какую комбинацию опций вы действительно хотите.

1 голос
/ 01 сентября 2013

Идеальный ответ, с одним небольшим изменением: добавление -p для "порта"

Приемник:

nc -l -p 8011 >logfile.txt

Я вытащил файл помощи nc (nc-h) используя ваше предложение

Отправитель:

nc -h 2>&1 | nc 127.0.0.1 8011

Я пытался

nc -h > logfile.txt
nc -h >> logfile.txt

, который никогда не работал.

Я использую Netcat дляWindows 7 в 2 cmd.exe

Спасибо, еще раз

...