批量检测服务器状态

一个网友反馈批量在腾讯云购买的服务器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 为执行的命令

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...