在带有密码提示的bash脚本中检查路由器的SSH登录状态,可以通过以下步骤实现:
router_ip="192.168.1.1"
ssh_username="admin"
ssh_password="password"
sshpass
命令结合ssh
命令来检查SSH登录状态。sshpass
命令可以自动输入密码,避免在脚本中明文显示密码。sshpass -p "$ssh_password" ssh -o StrictHostKeyChecking=no "$ssh_username"@"$router_ip" "exit"
上述命令中,-p
参数用于指定密码,-o StrictHostKeyChecking=no
参数用于跳过首次连接时的主机密钥检查,"exit"
表示执行一个简单的命令来验证SSH连接。
ssh
命令的返回值来判断SSH登录状态。如果返回值为0,则表示SSH连接成功;否则,表示连接失败。if [ $? -eq 0 ]; then
echo "SSH登录成功"
else
echo "SSH登录失败"
fi
上述代码中,$?
表示上一个命令的返回值,-eq
用于判断两个值是否相等。
综合起来,完整的脚本如下所示:
#!/bin/bash
router_ip="192.168.1.1"
ssh_username="admin"
ssh_password="password"
sshpass -p "$ssh_password" ssh -o StrictHostKeyChecking=no "$ssh_username"@"$router_ip" "exit"
if [ $? -eq 0 ]; then
echo "SSH登录成功"
else
echo "SSH登录失败"
fi
这样,当执行该脚本时,就能检查路由器的SSH登录状态了。
注意:为了安全起见,建议将脚本中的密码部分存储在安全的地方,比如使用环境变量或者加密文件等方式,避免明文显示密码。
领取专属 10元无门槛券
手把手带您无忧上云