如何连接到远程会话并在本地获取服务器输出

如何连接到远程会话并在本地获取服务器输出

因此,我在云中有一个远程服务器运行我的应用程序,当我需要测试/浸泡测试时,我在本地运行 ./gradlew- 。它运行一个脚本>连接到虚拟机-我的应用程序>并在我的虚拟机上开始测试。我可以在本地终端上看到 ./gradle 输出,因此当测试结束时,服务器会通过 gradle 会话将结果返回给我的本地终端。但是,如果我在长时间测试期间失去了与虚拟机的连接,或者由于某种原因失去了互联网,gradle 会话就会断开连接并退出,这不会在本地自动给出结果。如果我再次连接到互联网,有没有办法恢复 gradle 会话。

答案1

不知道有关 Gradle 的具体信息,但以下是一种通用方法,可以用来执行远程进程,无论连接是否丢失:

  • SSH进入远程机器
  • (tmux/screen) 和/或 nohup 进程
  • (从 ssh 会话分离)
  • SCP/rsync 将远程服务器的结果同步到本地计算机

下面是上述内容的通用示例:

local> $ ssh user@remoteHostName
remote> $ nohup ./command &
...closed session...
local> $ scp user@remoteHostName:/results/directory/result.txt .

尽管这并不完全是您正在做的事情,但它看起来像您的命令正在做的事情。这些知识将帮助您调试任何问题,甚至避免再次重新运行任务(例如,如果您在下载结果时连接断开)。

您可以查看 wikipedia/google 以获取有关所有这些工具的更多信息。不幸的是,由于我的声誉较低,我不能放置超过 2 个链接:(

相关内容