您可以创建操作 shell 脚本以便在本地群集检测到伙伴群集丢失心跳时执行。由于脚本需要超级用户权限才能执行,因此文件必须具有超级用户拥有权和执行权限。
如果您已配置 Notification_actioncmd 属性,将执行以下命令行中带有提供事件信息参数的操作命令:
# custom-action-command-path -c local-cluster-name -r remote-cluster-name -e 1 \ -n node-name -t time |
指定您已创建的操作命令的路径
指定本地群集的名称
指定远程伙伴群集的名称
指定 HBLOST=1,表明心跳丢失事件已发生
指定发出心跳丢失事件通知的群集节点名称
从 1970 年 1 月 1 日 00:00:00 (GMT) 算起,以毫秒为单位指定心跳丢失事件的时间
您可以使用该脚本在辅助群集上执行自动接管操作。不过此类自动操作存在风险如果心跳丢失通知由主群集和辅助群集上所有心跳连通性全部丢失所致,此类自动操作可能导致存在两个主群集的情况。
此示例显示了正在通知操作 shell 脚本中解析的命令行中的事件信息。
#!/bin/sh set -- `getopt abo: $*` if [ $? != 0] then echo $USAGE exit 2 fi for i in $* do case $i in -p) PARTNER_CLUSTER=$1; shift;; -e) HB_EVENT=$2; shift;; -c) LOCAL_CLUSTER=$3; shift;; -n) EVENT_NODE=$4; shift;; esac done |