情况如下:
- 我正在运行 VPN,这样我就可以连接到我所在学院的几台计算机
- 我有几个想要并行运行的任务(这些将是密集且独立的任务(对大型数据集进行分类),可以在这些计算机上一夜之间完成)
- 我有一个 BASH 脚本,用于将适当的文件复制到正确的计算机,并在这些计算机上启动脚本,进而激活任务。
- 我使用 ssh 连接到计算机
- 如果我连续连接到电脑,效果很好
- 但是,如果我并行运行 ssh 命令(使用 bash 函数和 & 运算符“run $variables &”),它似乎可以正常启动,但随后我收到以下错误:
远程主机关闭与 pc_x.example.com 的连接。连接丢失
此后,我的 VPN 停止工作,我必须重新连接。
那么我能做些什么呢?如果我在两台机器上运行它,那就没问题,三台机器也可以,但是对于四台机器,它有时有效,有时无效。
您需要更多信息吗?这是询问该信息的正确网站吗?
更多信息:
- 我是ADSL线路,大学网络连接应该很好(我连接的地方)
- 我使用思科 VPN 客户端连接到大学网络(启用了 TCP 上的透明隧道 IPSec、组身份验证)
- 我从家里的电脑上运行的 ubuntu 虚拟机连接到大学的 fedora 远程电脑
- 我无法在远程机器上打开 sshd_config
- 带宽应该没问题,但也许我后面的家用路由器(无法访问它)可能会造成干扰?
也许有一种方法可以发送 ssh 命令,然后在发送下一个命令之前断开连接(这样就不必等待通过 ssh 发送的命令完成),是否可以在远程主机上设置一个脚本来启动不等待其完成的任务,或者所有 bash 脚本都等待发出的命令完成?
我不是一个有经验的网络用户或 Linux 用户
答案1
这看起来就像您的 SSH 连接超时了,大概是因为这些脚本运行了很长时间而没有提供任何输出或反馈(因为这会使隧道保持活动状态)。
也许你应该尝试使这个过程更加自动化,即使用 cron 作业中的 rsync 或 scp 在特定时间传输相关文件,然后使用远程服务器上的 cron 作业来处理它们。远程 cron 作业可以将其输出收集到文件中,然后通过电子邮件向您发送摘要。
如果您能够修改远程计算机上的 sshd_config(您说您不能,所以这只是假设),您可能能够延长超时时间或使用 TCP keepalive。