通过SSH查看脚本输出?

2 投票
2 回答
1155 浏览
提问于 2025-04-16 08:28

我有一个脚本,叫做 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 应该更简单,所以你可以试试这个吗?

撰写回答