2013-10-18 50 views
0

我想在脚本中打开ssh会话,然后在本地执行其他命令,然后发送命令到已经打开的ssh会话。我想在脚本中打开一个ssh会话,然后在本地执行其他命令,然后发送命令到已经打开的ssh会话

具体而言,我想在Linux中运行一个shell脚本,它首先在后台打开ssh会话,然后继续并将数据库置于只读模式,然后在打开的ssh会话中运行命令,然后将数据库放回写模式。 当我这样做的时候,每一秒都会计数,实际上打开ssh会话大约需要80%的时间,所以这就是为什么我不想在数据库处于只读状态时打开ssh会话并发送命令给它,只有模式。我们没有expect的访问权限。

回答

1

我认为连接复用是你的答案。

它的工作方式是,如果你在另一个窗口现有ssh连接到同一台服务器, 例如在同一台机器, 或在当前的登录壳中背景会议上, 随后ssh连接到相同的服务器可以重复使用第一个,即大大加快启动时间,就像您想要实现的那样, 。

添加到您的~/.ssh/config连接到服务器时启用:

Host yourserver 
ControlMaster auto 
ControlPath ~/.ssh/master-%[email protected]%h:%p 

我用这个无处不在,所以不是yourserver我用*

试试这个:ssh在一个窗口中,在您登录后,ssh到另一个窗口中的同一台服务器上。第二个连接必须更快,因为它不需要认证和建立连接,因为它将重用已经存在的连接。

相关问题