当通过 SSH 连接到远程系统时,如何将命令输出保存到本地系统?

当通过 SSH 连接到远程系统时,如何将命令输出保存到本地系统?

因此,我尝试创建一个询问系统,一台计算机(我们称之为计算机 1)向另一台计算机(计算机 2)询问一个问题。答案将通过计算机 1 中的文本文档进行回复。计算机 1 可以询问的问题目前并不重要,但假设计算机 1 询问计算机 2 上次重新启动的时间。

我正在使用 ssh 询问问题,但它不起作用。我将 nr1 ssh 到 nr2,然后,例如,询问它上次重启的时间:

who -b | awk '{print $(NF-1)" "$NF}' >> existing_file_in_nr1.txt

但是当我运行命令时,它将答案放在计算机 2 中。如果我希望在从计算机 1 ssh 到计算机 2 时将我的答复发送到计算机 1 而不是计算机 2,我该怎么做?

谢谢。

答案1

通过 SSH 运行问题,但在 SSH 之外捕获答案。

在 nr1 上:

ssh user@nr2 'who -b' | awk '{print $(NF-1)" "$NF}' >> existing_file_in_nr1.txt

答案2

无需通过 SSH 连接并在 SSH 启动的 shell 上运行命令,而是使用 SSH 直接运行命令。然后重定向将在本地系统上发生。从 nr1 开始:

ssh nr2 who -b | awk '{print $(NF-1)" "$NF}' >> existing_file_in_nr1.txt

在这种情况下,仅who -b在 nr2 上运行。其他一切都在 nr1 上运行。

虽然已经在 nr2 上,但你无法对 nr1 产生太大影响。你可以使用 SSH 返回 nr1,或执行类似操作,但仅此而已。

相关内容