加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何确保ssh在启动时准备就绪

发布时间:2020-12-14 02:35:23 所属栏目:Linux 来源:网络整理
导读:我们有一个自动化工具,它尝试通过ssh登录并发送命令,这在服务器运行时工作正常.另一方面,当服务器启动时,我们的工具检查ssh端口(22)是否打开,如果它是打开的,它会尝试连接到服务器并发送命令. 但是,当服务器处于启动顺序并且我们的自动化工具检查端口22是否
我们有一个自动化工具,它尝试通过ssh登录并发送命令,这在服务器运行时工作正常.另一方面,当服务器启动时,我们的工具检查ssh端口(22)是否打开,如果它是打开的,它会尝试连接到服务器并发送命令.

但是,当服务器处于启动顺序并且我们的自动化工具检查端口22是否打开时,它会尝试使用ssh客户端连接到服务器但服务器拒绝或ssh客户端返回错误“ssh port is not open”.

我们试图用telnet调查这个问题并看到,在启动序列中,sshd启动并打开端口22并开始监听,但它以某种方式再次关闭端口并在一段时间内再次打开它.这就是我们的自动化工具尝试登录的完全相同的时间.

我的问题是;我们如何确保ssh端口成功打开并准备好接受命令?

感谢您抽出宝贵时间回答,
最好的祝福

解决方法

首先,似乎自动化工具没有验证ssh的退出状态.我会尝试解决那里的问题.

一种解决方案是尝试填充创建该工具的团队的错误.

另一个解决方案是将ssh命令包装在一个透明地执行此操作的脚本中.例如.在/opt/myproject/ssh_wraper.sh中创建一个脚本

在这里你可以有类似的东西:

SSH_EXIT_STATUS=255
while [[ $SSH_EXIT_STATUS -eq 255 ]];do
    ssh ....
    SSH_EXIT_STATUS=$?
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读