shell test脚本

1、lvs添加删除real_server节点

# cat lvs_add_remove_node.sh 
#!/bin/bash

file=/etc/keepalived/keepalived.conf
Ip=(10.14.4.104 10.14.4.120)
Port=(9001 9002 9003 443 7443)

#从keepalived.conf里注释配置以达到去掉负载的目的
function add_mark ( ) {
for i in `grep -v -n  "^$" $file | grep -A8 "real_server $ip $port"|cut -c 1-3`
do
  k=`sed -n "$i"p $file`
  cmd="sed -i '${i}s/${k}/#&/' $file"
  eval $cmd
done
}

#取消keealived.conf里注释以达到添加一个负载的目的
function remove_mark () {
for i in `grep -v -n  "^$" $file | grep -A8 "real_server $ip $port"|cut -c 1-3`
do
  k=`sed -n "$i"p $file`
  cmd="sed -i '${i}s/\(#\|# \)/ /' $file"
  eval $cmd
done
}


#重启keepalived服务
function restart_keepalived () {
/etc/init.d/keepalived restart
}



case $1 in
   m_add)
       ip=${Ip[0]}
       for port in ${Port[2]} ${Port[3]}
       do
         add_mark
        done
        restart_keepalived
   ;;
   web_add)
       ip=${Ip[1]}
       for port in ${Port[1]} ${Port[4]}
       do
         add_mark
       done
        restart_keepalived
   ;;
   api_add)
       ip=${Ip[0]}
       port=${Port[0]}
         add_mark
         restart_keepalived
   ;;
   m_remove)
       ip=${Ip[0]}
       for port in ${Port[2]} ${Port[3]}
       do
         remove_mark
       done
        restart_keepalived
   ;;

   web_remove)
       ip=${Ip[1]}
       for port in ${Port[1]} ${Port[4]}
       do
         remove_mark
       done
        restart_keepalived
   ;;
   api_remove)
       ip=${Ip[0]}
       port=${Port[0]}
         remove_mark
         restart_keepalived
   ;;
   *)
       echo "请输入 m_add |web_add |api_add | m_remove |web_remove |api_remove 等参数!"
   ;;
 esac

 

  

posted @ 2019-07-30 11:05  miclesvic  阅读(50)  评论(0)    收藏  举报