原地址:http://www.cnblogs.com/fansik/p/6248684.html
脚本一启动的速度要快一些哦,因为脚本二要判断两次以后才启动哎
这两个一般配合keepalived使用
脚本一:
#!/bin/bash #author:fansik #description:check nginx service run=`ps -C nginx --no-header | wc -l` if [ $run -eq 0 ] then /etc/rc.d/init.d/nginx start sleep 3 fi
脚本二:
#!/bin/bash #author:fansik #description:check nginx service count=0 for (( k=0; k<2; k++ )) do check_code=$( curl --connect-timeout 3 -sL -w "%{http_code}\\n" http://localhost/index.html -o /dev/null ) if [ "$check_code" != "200" ]; then count=$(expr $count + 1) sleep 3 continue else count=0 break fi done if [ "$count" != "0" ]; then /etc/init.d/nginx start exit 1 else exit 0 fi
keepalived的配置文件/etc/init.d/keepalived.conf:主配置文件如下,从配置文件将MASTER改成BACKUP,双主模型的时候在添加一个vrrp_instance VI_1主里面变成BACKUP,从里面变成MASTER,virtual_router_id变一下
! Configuration File for keepalived global_defs { notification_email { [email protected] } notification_email_from [email protected]localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/etc/keepalived/nginx1.sh" interval 1 weight -2 fall 2 rise 1 } vrrp_script chk_notify { script "/etc/keepalived/chk_nginx.sh" interval 1 weight -2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.10.10.250 } track_script { chk_nginx chk_notify } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault" }
通知脚本:/etc/keepalived/nodify.sh
#!/bin/bash #author:fansik #description:check nging status vip=10.10.10.250 contact=‘[email protected]‘ notify() { mailsubject="`hostname` to be $1:$vip floating" mailbody="`date ‘+%F %H:%M:%S‘`: vrrp transition, `hostname` change to be $1" echo $mailbody | mail -s "$mailsubject" $contact } case "$1" in master) notify master exit 0 ;; backup) notify backup exit 0 ;; fault) notify fault exit 0 ;; *) echo "Usage:`basename $0` {master|backup|fault}" exit 1 ;; esac
时间: 2024-11-05 11:55:43