#!/bin/bash /usr/local/bin/redis-cli -h 192.168.1.53 -p 6379 info > /dev/null if [ $? -eq 0 ]; then echo "redis OK" exit 0 else echo "no redis service found!" /usr/local/bin/redis-server /path/to/redis.conf # try to start it again /usr/local/bin/redis-cli -h 192.168.11.53 -p 6380 info > /dev/null if [ $? -eq 0 ]; then exit 0 else # restart failed killall keepalived echo "error" fi fi
! Configuration File for keepalived global_defs { router_id redis1 } vrrp_script Monitor_Redis { script "/opt/redis_keepalive.sh" interval 10 weight 2 } vrrp_instance 360 { state BUCKUP #(主机为MASTER,备用机为BACKUP) interface eth0 #(HA监测网络接口) virtual_router_id 110 #(主、备机的virtual_router_id必须相同) mcast_src_ip 192.168.11.53 #(多播的源IP,设置为本机外网IP,与VIP同一网卡)此项可不设置 priority 70 #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高) advert_int 1 #(VRRP Multicast广播周期秒数) authentication { ...... } notify_master /opt/redis_2master.sh notify_backup /opt/redis_2backup.sh track_script { Monitor_Redis #(调用nginx进程检测脚本) } virtual_ipaddress { 192.168.11.4 #(VRRP HA虚拟地址) } }