将Python脚本的输出通过管道传输到远程机器?
我有一个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),并把从输入中获取的内容通过网络发送出去。连接返回的数据会显示在标准输出上。