yinian 发表于 2018-11-11 09:18:08

nginx负载均衡-下线(上线)某台机器脚本

#!/bin/bash  
CONF="nginx.conf"
  
HOST=${1:?'错误,请输入你要下线机器的ip,例如:192.168.144.41'}
  
TestHost=`cat filelist |grep "\"|wc -l`
  
if [ $TestHost -eq 0 ];then
  echo "您输入的ip错误,请检查!!"
  exit 1
  
fi
  
echo "====================================="
  
echo -e "1)上线某台机器\n2)下线某台机器\n3)退出"
  
echo "====================================="
  
read -p "请输入需要操作的编号:" a
  
backupfile="nginx.conf.`date +%Y-%m-%d-%H-%M-%S`"
  
cp $CONF $backupfile
  
TestONline=`sed -n '/^#.*'"$HOST"'/p' $CONF|wc -l`
  
TestHost=`cat filelist |grep "\"|wc -l`
  
#ONline=`sed -i '/'"$HOST"'/s/^#//g' $CONF`
  
#OFFline=`sed -i '/'"$HOST"'/s/^/#/g' $CONF`
  
ONLINE(){
  
ONline=`sed -i '/'"$HOST"'/s/#//g' $CONF`
  if [ "$TestHost" -eq 0 ];then
  echo "您输入的ip不在线上服务器列表中,请重新输入!"
  exit 1
  else
  if [ $TestONline -eq 0 ];then
  echo "您输入的ip目前已经在线上,请检查!!!"
  exit 1
  else
  read -p "您确定要上线$HOST这台机器吗?(y/n)" cmd
  case $cmd in
  y|Y)
  $ONline
  echo -e "\033[32m \033[05m $HOST已上线!! \033[0m"
  ;;
  n|N)
  exit 1
  ;;
  *)
  echo "您的输入只能是y或n,请重新操作!!"
  ;;
  esac
  fi
  fi
  
}
  
OFFLINE() {
  
OFFline=`sed -i '/'"$HOST"'/s/^/#/g' $CONF`
  if [ "$TestHost" -eq 0 ];then
  echo "sorry,您输入的ip不在线上服务器列表中,请重新输入!"
  exit 1
  else
  if [ $TestONline -eq 0 ];then
  read -p "您确定要下线$HOST这台机器吗?(y/n)" CMD
  case $CMD in
  y|Y)
  $OFFline
  echo -e "\033[32m \033[05m $HOST已下线!! \033[0m"
  ;;
  n|N)
  exit 1
  ;;
  *)
  echo "您的输入只能是y或n,请重新操作!!"
  exit 1
  ;;
  esac
  else
  echo "您要下线的机器目前已经在线下!!请检查!!"
  fi
  fi
  
}
  
case $a in
  1)
  ONLINE
  ;;
  2)
  OFFLINE
  ;;
  3)
  exit 0
  ;;
  
esac


页: [1]
查看完整版本: nginx负载均衡-下线(上线)某台机器脚本