微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

批量检测服务器状态

一个网友反馈批量在腾讯云购买的服务器10台部分连接失败!!这里连接失败特指使用服务器秘钥的方式登录失败。我这边也模拟用户的场景复测了一下一次性购买20台服务器,大概思路:

  • 是先判断端口是否工作正常,如果不正常再来根据情况排查
  • 再来通过脚本批量测试秘钥登录服务器,是否有异常。

这里拆分两块来完成,分别是检测端口是否工作正常和通过秘钥方式来模拟登录服务器。

先确认端口是否工作正常

如何批量检测这些服务器端口是否正常是摆在眼前的一个问题,当然检测服务器端口是否正常有很多方式,哪种是最快的让我想到以下方式推荐大家。

首先下载nc (或叫netcat)

yum install nc

编辑以下Shell脚本。

#!/bin/bash
port=80
while read line
do
        if nc -z -w1 $line $port ;then
               echo $line $port  "ok"
         else
               echo $line $port "fail"
         fi
done < iplist

nc 命令的参数解释:

  • -z 表示zero,表示扫描时不发送任何数据
  • -w1 超时秒数,后面跟数字

也可以写成一行

if nc -z -w1 ip 80 ;then echo "ok"; else echo "fail"; fi

将要测试的IP放到ipList文件中,然后执行脚本效果如下。

再来确认秘钥登录

这里可以使用expect脚本来实现,脚本如下

#!/usr/bin/expect
set timeout 3
set host [lindex $argv 0]
set command [lindex $argv 1]

spawn ssh -i djangowang.pem root@$host $command
expect "*connecting"
send "yes\r"
interact

参数解释

  • djangowang.pem 为服务器秘钥
  • host为检测服务器IP
  • command 为执行的命令

原文地址:https://cloud.tencent.com/developer/article/1764210

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐