2010-12-13 36 views
2

我有一個劇本,叫test.py,即執行以下操作:通過SSH查看腳本輸出?

而(1):

....打印的 「Hello World」

(這個腳本只是簡單地打印'hello world')。


現在,我使用兩臺機器(機器A和機器B)。兩臺機器都使用同一用戶。我想做到以下幾點:

(1)運行test.py [用機用工作]機器A {意義,編程本地python腳本將運行test.py使用說使用os.system(....)} (在這一點上,腳本test.py是打印的 「Hello World」 機器A的屏幕)

(2)[用機的工作B]我現在想用ssh登錄到機器A並查看'我們跑過的腳本的輸出(1)

我該如何做到這一點?我知道如何編寫將運行和機器A.開始test.py我也知道如何從機器B ssh到機器A.腳本

什麼我不知道的是:

(*)我應該在(1)中使用什麼命令來運行python腳本,以便在從另一臺機器(機器B)登錄到機器A時可以輕鬆查看其輸出? (*)在從機器B到機器A的ssh之後,如何「導航」到顯示test.py的輸出的屏幕?

回答

4

有你能做到這幾個方面......但可能是最簡單的將是一個FIFO緩衝器:

A$ mkfifo /tmp/stuff 
A$ ./test.py &> /tmp/stuff 

然後在B機:

B$ ssh A "cat /tmp/stuff" 
hello world 
hello world 
... 

通常我會建議使用screen,但它假定你將從終端內部運行(這將是棘手的)。我聽說detach應該更簡單,所以你可能會嘗試嗎?

+0

謝謝大衛。我知道'屏幕'是從終端使用。是否有可能在python腳本中使用'screen'? – user3262424 2010-12-13 15:38:28

+0

那......可能會很棘手。因爲'screen'確實可以讓各種終端魔法在正確的位置寫入文本,並讓您在屏幕和內容之間切換。如果FIFO緩衝區或重定向到一個文件不夠好,我會考慮在屏幕之前使用detach。 – 2010-12-13 15:40:54

+0

謝謝你的回答。 – user3262424 2010-12-13 15:48:33

1

一個非常快速的替代方法是將python程序的輸出傳輸到一個文件,然後簡單地使用tail與第二個用戶在輸出寫入文件時查看輸出。但是,像你這樣的程序,文件將很快變得龐大,

+0

謝謝你的回答。 – user3262424 2010-12-13 15:45:58