将Python脚本的输出通过管道传输到远程机器?

1 投票
5 回答
3999 浏览
提问于 2025-04-16 13:32

我有一个Python脚本,它会把一个很大的数组(大小为50MB)输出到屏幕上。这个脚本是在machineA上运行的。请问有没有办法把这个输出直接“传送”到machineB,让它在那边处理呢?

我知道我可以先把输出保存到machineA上的一个文件里,然后再把这个文件发送到machineB。我只是想知道有没有办法在不先把数据保存到文件里的情况下,直接传送数据。

任何解决方案(无论是Python、bash命令行,还是其他想法)都非常欢迎。

5 个回答

1

在机器A上:

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
1

使用Netcat工具,你可以很方便地把数据从一台机器传输到另一台机器。

5

这是一个关于 nc(netcat)的操作... 在 machineB 上你需要执行

nc -l 12345 | processing_program

这个命令会让 netcat 进入“监听模式”,也就是等待连接。一旦连接建立,从网络上收到的数据会显示在屏幕上,而你发送的数据也会回传给连接的那一方。

接下来,你去 machineA 上运行

generating_program | nc machineB 12345

这个命令会让 netcat 开始连接到 machineB(端口 12345),并把从输入中获取的内容通过网络发送出去。连接返回的数据会显示在标准输出上。

撰写回答