#!/bin/bash
# 检测keepalived集群
check_keepalived() {
# 获取keepalived节点的VIP信息
echo -n "$(hostname) "
for conf in $(find /etc/keepalived/ -name "*.conf"); do
vip=$(awk '/^virtual_ipaddress/{getline; print}' $conf | tr -d ' ' | tr -d '\t')
if ip addr | grep -q $vip; then
echo "Master"
else
echo "Backup"
fi
done
}
# 检测pcs集群
check_pcs_cluster() {
# 获取当前节点上运行的pcs集群资源名称和主机名
echo -n "$(hostname) "
pcs status >/dev/null 2>&1
if [ $? -eq 0 ]; then
resource_groups=$(pcs status | awk '/^ +Resource Group:/{group=$4; getline; print group}' ORS=' ')
if [ -z "$resource_groups" ]; then
echo "NULL"
else
echo "$resource_groups"
fi
else
echo "NULL"
fi
}
# 执行检测操作
check_keepalived
check_pcs_cluster