通过SSH查看脚本输出?
我有一个脚本,叫做 test.py,它的功能很简单:
一直循环:
....打印 "hello world"
(这个脚本会不停地在屏幕上打印“hello world”)。
现在,我有两台机器(机器A和机器B)。这两台机器上用的是同一个用户。我想做以下事情:
(1) [在机器A上工作] 在机器A上以编程的方式运行 test.py { 也就是说,我会用一个本地的Python脚本来运行 test.py,比如用 os.system(....) } (此时,脚本 test.py 会在机器A的屏幕上打印 "hello world")
(2) [在机器B上工作] 我现在想通过ssh登录到机器A,并“查看”在(1)中运行的脚本的输出
我该怎么做呢?我知道怎么写脚本来在机器A上运行和启动 test.py。我也知道怎么从机器B通过ssh连接到机器A。
我不知道的是:
(*) 在(1)中我应该使用什么命令来运行这个Python脚本,以便在从另一台机器(机器B)登录到机器A时,能够轻松查看它的输出?
(*) 从机器B通过ssh登录到机器A后,我该如何“导航”到显示 test.py 输出的屏幕?
2 个回答
1
一个很简单的办法是把你的Python程序的输出结果直接写入一个文件,然后用第二个用户的身份运行tail
命令,这样就可以实时查看文件里的内容。不过,像你这个程序,文件会很快变得非常大。
4
有几种方法可以做到这一点……但可能最简单的就是使用一个先进先出(fifo)缓冲区:
A$ mkfifo /tmp/stuff
A$ ./test.py &> /tmp/stuff
然后在机器B上:
B$ ssh A "cat /tmp/stuff"
hello world
hello world
...
通常我会建议使用 screen
,但它假设你会在终端里面运行(这可能会有点麻烦)。我听说 detach
应该更简单,所以你可以试试这个吗?