我正在编写一个脚本,将数据从我的笔记本电脑备份到 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 假设,该假设有时是错误的。