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

前端之家收集整理的这篇文章主要介绍了linux – 如何确保ssh在启动时准备就绪前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个自动化工具,它尝试通过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

猜你在找的Linux相关文章