如何检查远程计算机是否在线以进行 ssh/脚本访问?

如何检查远程计算机是否在线以进行 ssh/脚本访问?

我正在编写一个脚本,将数据从我的笔记本电脑备份到 Ubuntu 服务器。为此,我正在寻找一个 (ba)sh 命令来测试服务器在开始备份之前是否可用。类似ping在端口 22 上返回布尔值的东西。

我怎样才能做到这一点?

答案1

像这样:

nc -z hostname 22 > /dev/null
echo $?

如果是的0话就可以用了。如果是的1话那就不是了。

答案2

使用网猫:

nc -z localhost 22

从联机帮助页

 -z      Specifies that nc should just scan for listening daemons,
         without sending any data to them.

答案3

备用:

nc -vzw 1 hostname 22

答案4

ssh hostname exit 2>/dev/null ; echo $?

这实际上创建了一个连接并执行身份验证。而且它不依赖于端口 22 假设,该假设有时是错误的。

相关内容