kaiser_cn 发表于 2019-1-4 11:03:01

LVS 自开发脚本

lvs启动脚本—服务端
  chkconfig --add lvs
  chmod +x /etc/init.d/lvs
  # cat /etc/init.d/lvs
  #!/bin/bash
  # chkconfig: 2345 90 60
  # description: lvs server start and stopscripts
  # hexudong
  . /etc/init.d/functions
  VIP=(
  192.168.1.16
  )
  RS=(
  192.168.1.20
  192.168.1.21
  )
  dev=eth0
  arp_ip=192.168.1.253
  lvs_start(){
  ipvsadm -C
  ipvsadm --set 30 5 60
  for((i=0;i/dev/null 2>&1
  ipvsadm -A -t ${VIP}:80 -s rr -p20
  for ((n=0;n/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  sleep 1
  if[ $RETVAL -eq 0 ]
  then
  action "The lvs_client is start" /bin/true
  else
  action "The lvs_client is start" /bin/false
  fi
  }
  lvs_stop(){
  for((i=0;i/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
  sleep 1
  if[ $RETVAL -eq 0 ]
  then
  action "The lvs_client is stop" /bin/true
  else
  action "The lvs_client is stop" /bin/false
  fi
  }
  USAGE(){
  echo "USAGE:$0{start|stop|restart}"
  }
  [ $# -ne 1 ]&&{
  USAGE
  exit2
  }
  case "$1" in
  start)
  lvs_start
  exit $RETVAL
  ;;
  stop)
  lvs_stop
  exit $RETVAL
  ;;
  restart)
  lvs_stop
  lvs_start
  exit $RETVAL
  ;;
  *)
  USAGE
  exit 3
  esac
web端 RS的健康检查
  # cat lvs_rs_check.sh
  #!/bin/bash
  # hexudong
  VIP=(
  192.168.1.16
  )
  RS=(
  192.168.1.20
  192.168.1.21
  )
  web_file=/data0/check/index.html
  html(){
  cat>$web_file$web_file
  echo "      ${RS}" >>$web_file
  echo "      OK" >>$web_file
  echo "   ">>$web_file
  done
  cat>>$web_file&1
  ipvsadm -A -t ${VIP}:80 -s wrr -p20
  for ((n=0;n/dev/null 2>&1
  RETVAL=$?
  if[ $RETVAL -ne 0 ]
  then
  [ `ipvsadm -L -n|grep "TCP"|wc -l` -eq 0 ]&& \
  lvs_add
  else
  [ `ipvsadm -L -n|grep "TCP"|wc -l` -ne 0 ]&& \
  lvs_del
  fi
  }
  main(){
  while true;do
  check_lvs
  sleep 1
  done
  }
  main
  




页: [1]
查看完整版本: LVS 自开发脚本