我想使用 ssh 在多台机器上运行一些命令。我知道只需使用命令“ssh user@hostname command”即可完成。但是,我想运行的命令在控制台上打印一些字符串。有什么方法可以将所有字符串发送回我所在的控制台吗?

有帮助吗?

解决方案

您可以在屏幕中运行命令:

screen -S test
ssh user@hostname command1
ssh user@hostname2 command2

然后您可以从屏幕上分离(Ctrl-D),让它运行不管它运行多长时间,然后重新连接(屏幕-r test)到屏幕上并查看所有输出。但是,假设您不会从命令中获得大量输出。 这是指向屏幕教程的链接

其他提示

 ssh user@hostname command 

就是这么做的。如果“命令”输出某些内容,它将显示在您运行 ssh 的终端上。尝试例如ssh 用户@主机名 ls -l

但正如其他人所说,GNU screen 对于此类工作来说是无价的。

您可能希望使用 Gnu Screen 。您可以在<!>“虚拟<!>”中开始一个过程。终端,<!> quot; detach <!> quot;终端并注销你想要的多久...然后你可以重新连接并重新连接终端以查看控制台输出。

另请参阅nohup,例如:

ssh user@domain.com nohup script_that_outputs_strings.py > the_strings.txt

然后,如果您想要返回并监控进度,可以检查并tail将文件或scp输出返回到本地计算机。

你为什么不给你发回电子邮件? 或使用日志文件,并将其scp到您当前的计算机? 否则,我不知道!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top