美文网首页
【easyctl】使用easyctl对多主机探活(ping+te

【easyctl】使用easyctl对多主机探活(ping+te

作者: 微凉哇 | 来源:发表于2021-12-29 16:06 被阅读0次

背景说明

最近有个场景:

获取某地址段内存活的linux主机列表(ip列表形式)

实现方式:

  • 对地址段内的主机发送icmp包(ping)
  • 与目标主机ssh服务建立连接(telnet): 针对禁ping主机或探测ip地址非linux系统主机,因为有可能是其他服务用的vip

优势:秒级批量探活

注意: 可能存在一定误差,以实际情况为准。

使用方式

安装easyctl

  • 编译安装最新版
git clone https://github.com/weiliang-ms/easyctl.git
cd easyctl
go build -ldflags "-w -s" -o /usr/local/bin/easyctl

建议采用以下方式安装:

  • 下载编译好的文件

easyctl-v0.7.12-alpha

chmod +x easyctl
mv easyctl /usr/local/bin

主机探活

  1. 生成默认配置文件
$ easyctl exec ping
INFO[0000] 生成配置文件样例, 请携带 -c 参数重新执行 -> config.yaml
  1. 修改配置文件

config.yaml默认配置解析:

ping检测192.168.1.1-192.168.1.255192.168.2.1-192.168.2.255地址段内主机,如果主机能ping通,将ip地址入server-list.txt文件

ping:
  - address: 192.168.1
    start: 1
    end: 255
    #port: 22
  - address: 192.168.2
    start: 1
    end: 255
    #port: 22
  1. 执行探活指令

添加--debug可以输出详细内容。

$ easyctl exec ping -c config.yaml --debug

配置项说明

ping:
  - address: 192.168.1
    start: 1
    end: 255
    #port: 22
  - address: 192.168.2
    start: 1
    end: 255
    #port: 22
  • ping: 数组类型列表
    • address: 192.168.1 主机地址段,格式为ip地址前三位
    • start: address地址段起始ipip地址第四位值)
    • end: address地址段结束ipip地址第四位值)
    • port: 对ip地址执行额外的端口探测(适用于禁ping或排除虚拟IP地址等场景;建议探测ssh端口)

配置样例

  1. 探测192.168.1.1-192.168.1.255内主机可达性,并探测22端口可达性
ping:
  - address: 192.168.1
    start: 1
    end: 255
    port: 22
  1. 探测192.168.1.1-192.168.1.255192.168.2.1-192.168.2.255内主机可达性,不探测端口可达性
ping:
  - address: 192.168.1
    start: 1
    end: 255
    #port: 22
  - address: 192.168.2
    start: 1
    end: 255
    #port: 22

执行逻辑

ping.drawio.png

相关文章

网友评论

      本文标题:【easyctl】使用easyctl对多主机探活(ping+te

      本文链接:https://www.haomeiwen.com/subject/icgvqrtx.html