背景说明
最近有个场景:
获取某地址段内存活的linux
主机列表(ip列表形式)
实现方式:
- 对地址段内的主机发送
icmp
包(ping) - 与目标主机
ssh
服务建立连接(telnet): 针对禁ping主机或探测ip地址非linux系统主机,因为有可能是其他服务用的vip
优势:秒级批量探活
注意: 可能存在一定误差,以实际情况为准。
使用方式
-
前置条件:安装easyctl
-
版本支持:v0.7.17-alpha以上
-
适用平台:
-
CentOS7
-
CentOS6
-
安装easyctl
- 编译安装最新版
git clone https://github.com/weiliang-ms/easyctl.git
cd easyctl
go build -ldflags "-w -s" -o /usr/local/bin/easyctl
建议采用以下方式安装:
- 下载编译好的文件
chmod +x easyctl
mv easyctl /usr/local/bin
主机探活
- 生成默认配置文件
$ easyctl exec ping
INFO[0000] 生成配置文件样例, 请携带 -c 参数重新执行 -> config.yaml
- 修改配置文件
config.yaml
默认配置解析:
ping
检测192.168.1.1-192.168.1.255
与192.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
- 执行探活指令
添加--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
地址段起始ip
(ip
地址第四位值) -
end
:address
地址段结束ip
(ip
地址第四位值) -
port
: 对ip
地址执行额外的端口探测(适用于禁ping
或排除虚拟IP
地址等场景;建议探测ssh
端口)
-
配置样例
- 探测
192.168.1.1-192.168.1.255
内主机可达性,并探测22
端口可达性
ping:
- address: 192.168.1
start: 1
end: 255
port: 22
- 探测
192.168.1.1-192.168.1.255
与192.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
执行逻辑

网友评论