Передача вывода из скрипта Python на удаленную машину?

1

У меня есть python script, который выводит/печатает большой массив (размером 50 МБ) на экран. Этот script работает на machineA. Возможно ли "вывести" этот вывод на machineB, где он будет обработан?

Я знаю, что я могу сохранить вывод в файле на machineA, а затем отправить файл в machineB. Мне просто интересно, можно ли сделать это без необходимости сначала сохранять данные в файл (на machineA).

Будут оценены любые решения (python, bash shell, другие идеи).

Теги:

5 ответов

3
Лучший ответ

Это работа для nc (netcat)... на machineB вы делаете

nc -l 12345 | processing_program

Эта команда запустит netcat в "режиме прослушивания", ожидающем соединения. Как только соединение установлено, то, что поступает из сети, будет отправлено на stdout, а то, что отправлено на stdin, будет отправлено обратно тому, кто подключен.

После этого вы продолжаете machineA и запустите

generating_program | nc machineB 12345

это приведет к тому, что netcat начнет соединение с machineB (порт 12345) и отправит все, что получает от stdin по проводу. Все, что возвращается из этого соединения, отправляется на стандартный вывод.

  • 0
    Ваш ответ лучше (нет необходимости в паролях или для запуска службы).
  • 0
    6502: спасибо. Может ли machineB одновременно прослушивать 20 машин? Кроме того, я должен активно «открыть порт прослушивания» на machineB ?
Показать ещё 2 комментария
1

На machineA:

python script-on-machineA.py --options | ssh machineB tee /file/on/machine/B.txt

В качестве альтернативы, на машинеB:

ssh machineA python /path/to/script-on-machineA.py --options | cat > /file/on/machine/B.txt
  • 0
    Это будет хорошо работать, так как я могу легко SSH между машинами.
1

С помощью инструмента Netcat вы можете легко передавать данные с одной машины на другую.

1

Вы можете сделать это на разных уровнях - вот несколько вариантов

  • использовать ssh для соединения     myprog | ssh remotemachine myotherprog
  • использовать nfs (если перейти в файл
  • использовать netcat (nc)
  • используйте что-то вроде экономки

Это зависит от того, насколько надежным и постоянным должно быть решение.

  • 0
    очень полезно. спасибо, nhed.
1

Возможно, что-то похожее на строки

myPythonScript | ssh user@machine "sh -c 'cat >myfile.txt'"

ПРЕДУПРЕЖДЕНИЕ: полностью вытащили из головы и непроверены!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню