我有一個python腳本,輸出/打印大型數組(大小爲50MB)到屏幕上。該腳本在machineA
上運行。是否有可能將這個輸出'管道'到machineB
,在那裏它將被處理?從python腳本輸出到遠程機器的輸出?
我知道我可以將輸出保存在machineA
的文件中,然後將文件發送到machineB
。我只是想知道是否可以這樣做,而不必先將數據保存到文件(在machineA
上)。
任何解決方案(python,bash shell,其他想法)將不勝感激。
我有一個python腳本,輸出/打印大型數組(大小爲50MB)到屏幕上。該腳本在machineA
上運行。是否有可能將這個輸出'管道'到machineB
,在那裏它將被處理?從python腳本輸出到遠程機器的輸出?
我知道我可以將輸出保存在machineA
的文件中,然後將文件發送到machineB
。我只是想知道是否可以這樣做,而不必先將數據保存到文件(在machineA
上)。
任何解決方案(python,bash shell,其他想法)將不勝感激。
這是nc
(netcat的)工作......在machineB
你做
nc -l 12345 | processing_program
該命令將在「監聽模式」等待連接開始的netcat。一旦建立連接,來自網絡的內容將被髮送到標準輸出,發送給標準輸入的內容將被髮回給連接的任何人。
之後,你去machineA
和運行
generating_program | nc machineB 12345
這將指示netcat來開始machineB
(端口12345)連接併發送不管它從標準輸入通過導線變。無論從該連接返回的是發送到標準輸出。
使用Netcat tool您可以輕鬆地將數據從一臺機器傳輸到另一臺機器。
你可以做不同層次的 - 這裏有幾個選項
這取決於解決方案如何固體&永久必須
非常有幫助。謝謝你。 – user3262424 2011-03-11 20:54:23
在machineA的:
python script-on-machineA.py --options | ssh machineB tee /file/on/machine/B.txt
另外,machineB上:
ssh machineA python /path/to/script-on-machineA.py --options | cat > /file/on/machine/B.txt
這會很好,因爲我可以輕鬆地在機器之間進行SSH連接。 – user3262424 2011-03-11 20:55:02
你的答案更好(不需要密碼或運行服務)。 – JCCyC 2011-03-11 20:44:58
6502:謝謝。 'machineB'可以同時聽20臺機器嗎?另外,我是否必須主動'打開'machineB'上的監聽端口? – user3262424 2011-03-11 20:52:28
使用該命令'machineB'將會監聽誰連接(所以這當然不安全......)沒有任何身份驗證的互聯網上的任何人都可以使用'machineB'將數據發送到'processing_program',如果可以到達該機器!)。一旦客戶端關閉連接,'nc'就終止,因此你最終需要在一個循環中重新運行該命令。如果「打開監聽端口」是指在防火牆上打個洞或者在路由器中定義一個虛擬服務器路徑,那麼答案是肯定的。 'nc'只是在指定的端口上進行TCP偵聽。 – 6502 2011-03-11 21:05:44