【问题标题】:View Script Output Over SSH?通过 SSH 查看脚本输出?
【发布时间】:2011-05-24 17:51:29
【问题描述】:

我有一个名为 test.py 的脚本,它执行以下操作:

而(1):

....打印“你好世界”

(此脚本只是连续打印“hello world”)。


现在,我正在使用两台机器(机器 A 和机器 B)。两台机器使用相同的用户。我想做以下事情:

(1) [使用机器 A] 在机器 A 上运行 test.py 以编程方式 {意思是,本地 python 脚本将是使用说 os.system(....) 运行 test.py } (此时脚本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 输出的屏幕?

【问题讨论】:

    标签: python linux ubuntu ssh


    【解决方案1】:

    有几种方法可以做到这一点……但最简单的可能是 fifo 缓冲区:

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

    然后在机器 B 上:

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

    通常我会建议使用screen,但它假定您将从终端内部运行(这会很棘手)。听说detach应该更简单,你可以试试吗?

    【讨论】:

    • 谢谢大卫。我知道终端使用了“屏幕”。是否可以在 python 脚本中使用“屏幕”?
    • 那……可能会很棘手。因为screen 做了各种终端魔法,可以在正确的位置写入文本,让您在屏幕和内容之间切换。如果 fifo 缓冲区或重定向到文件不够好,我会考虑在 screen 之前使用 detach。
    【解决方案2】:

    一个非常快速的替代方法是将 python 程序的输出通过管道传输到文件,然后简单地使用 tail 与第二个用户一起查看正在写入文件的输出。但是,使用像您这样的程序,文件将非常很快变得庞大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      相关资源
      最近更新 更多