[root@lb03 scripts]# cat lv_manager.sh
#!/bin/bash #定义只能是root用户执行
if [ $UID -ne ];then
echo "permission deny 必须root用户执行"
exit fi
#文件存在就加载文件
[ -f /etc/init.d/functions ] && . /etc/init.d/functions #定义绑定的虚拟ip vip_netmask=10.0.0.13/ vip=10.0.0.3 service_addr=10.0.0.13:
wbs=(
10.0.0.17:
10.0.0.18:
) count_pkg=$(rpm -qa|egrep ipvsadm|wc -l) function start () {
#检查虚拟IP个数,IP检测和ipvsadm -ln两种方法检查
count_vip_check=$(ip a|grep 10.0.0.1[]|wc -l)
count_vip_check2=$(ipvsadm -ln|grep "10.0.0.1[3]:80"|wc -l)
if [ ${count_vip_check} -eq -o ${count_vip_check2} -eq ]
then
echo "${count_vip_check} 虚拟IP已经存在"
else
ip addr add 10.0.0.13/ dev eth0
ipvsadm -C
ipvsadm --set
ipvsadm -A -t 10.0.0.13: -s wrr -p
fi
#管理工具ipvsadm不存在就安装
[ ${count_pkg} -eq ] && yum install ipvsadm -y >/dev/null #先检查一下网址通不通
for i in ${wbs[@]}
do web_code=$(curl -o /dev/null -w "%{http_code}" -s $i)
if [ "${web_code}" == "" ]
then
echo "${i} is ok"
ipvsadm -a -t 10.0.0.13: -r $i -g -w else
echo "添加的服务 ${i} 没有打开" fi done } stop () { count_vip_check=$(ip a|grep 10.0.0.1[]|wc -l)
if [ ${count_vip_check} -eq ]
then echo "虚拟IP 不存在"
exit
else
ip addr del 10.0.0.13/ dev eth0
ipvsadm -C
fi } case "$1" in start) start
;; stop) stop
;; restart) stop
sleep
start
;; *)
echo "Usage {start|stop|restart}"
;; esac

================================

下面是改过的比上面好

[root@lb04 scripts]# cat lv_manager.sh
#!/bin/bash #定义只能是root用户执行
if [ $UID -ne ];then
echo "permission deny 必须root用户执行"
exit fi
#文件存在就加载文件
[ -f /etc/init.d/functions ] && . /etc/init.d/functions #定义绑定的虚拟ip vip_netmask=10.0.0.13/ service_addr=10.0.0.13:
wbs=(
10.0.0.17:
10.0.0.18:
) count_pkg=$(rpm -qa|egrep ipvsadm|wc -l) function start () {
#检查虚拟IP个数,IP检测和ipvsadm -ln两种方法检查
count_vip_check=$(ip a|grep 10.0.0.1[]|wc -l)
count_vip_check2=$(ipvsadm -ln|grep "10.0.0.1[3]:80"|wc -l)
if [ ${count_vip_check} -eq -o ${count_vip_check2} -eq ]
then
echo "${count_vip_check} 本地虚拟IP已经存在,将退出" && exit
else
check_count=$(nmap 10.0.0.13|grep "Host is up"|wc -l)
[ ${check_count} -gt ] && echo "远端 13 ip开启,将退出" && exit
ip addr add 10.0.0.13/ dev eth0
ipvsadm -C
ipvsadm --set
ipvsadm -A -t 10.0.0.13: -s wrr -p
fi
#管理工具ipvsadm不存在就安装
[ ${count_pkg} -eq ] && yum install ipvsadm -y >/dev/null #先检查一下网址通不通
for i in ${wbs[@]}
do web_code=$(curl -o /dev/null -w "%{http_code}" -s $i)
if [ "${web_code}" == "" ]
then
echo "${i} is ok"
ipvsadm -a -t 10.0.0.13: -r $i -g -w else
echo "添加的服务 ${i} 没有打开" fi done } stop () { count_vip_check=$(ip a|grep 10.0.0.1[]|wc -l)
if [ ${count_vip_check} -eq ]
then echo "虚拟IP 不存在"
exit
else
ip addr del 10.0.0.13/ dev eth0
ipvsadm -C
fi } case "$1" in start) start
;; stop) stop
;; restart) stop
sleep
start
;; *)
echo "Usage {start|stop|restart}"
;; esac

21:开发脚本管理服务端LVS案例的更多相关文章

  1. 转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端

    from: http://ybak.iteye.com/blog/1853335 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端 游戏服 ...

  2. ubuntu下安装 gSOAP 用于C/C++开发web service服务端与客户端

    昨天在ubuntu下进行安装gSOAP,费了很多时间,没成功,今天又来找了大量教程资料,终于一次成功,这里写下自己的安装步骤和方法,供大家参考. 首先下载gsoap,我下载的是gsoap-2.8.1. ...

  3. 适合新手:从零开发一个IM服务端(基于Netty,有完整源码)

    本文由“yuanrw”分享,博客:juejin.im/user/5cefab8451882510eb758606,收录时内容有改动和修订. 0.引言 站长提示:本文适合IM新手阅读,但最好有一定的网络 ...

  4. 网络编程之TCP客户端开发和TCP服务端开发

    开发 TCP 客户端程序开发步骤 创建客户端套接字对象 和服务端套接字建立连接 发送数据 接收数据 关闭客户端套接字 import socket if __name__ == '__main__': ...

  5. 支付宝移动支付开发详细教程服务端采用.net mvc webapi(C#)

    转自:http://www.kwstu.com/ArticleView/netmvc_201511132005431321 最近开发手机app需要实现移动支付功能,由于考虑支付安全将支付宝生成签名写到 ...

  6. 微信移动支付V3开发详细教程服务端采用.net mvc webapi(C#)

    转自:http://www.kwstu.com/ArticleView/netmvc_201511132050268716 最近开发手机app需要实现移动支付功能,由于考虑支付安全将微信支付生成签名写 ...

  7. 二、网络编程-socket之TCP协议开发客户端和服务端通信

    知识点:之前讲的udp协议传输数据是不安全的,不可靠不稳定的,tcp协议传输数据安全可靠,因为它们的通讯机制是不一样的.udp是用户数据报传输,也就是直接丢一个数据包给另外一个程序,就好比寄信给别人, ...

  8. Linux下用gSOAP开发Web Service服务端和客户端程序

    网上本有一篇流传甚广的C版本的,我参考来实现,发现有不少问题,现在根据自己的开发经验将其修改,使用无误:另外,补充同样功能的C++版本,我想这个应该更有用,因为能用C++,当然好过受限于C. 1.gS ...

  9. Linux下用gSOAP开发Web Service服务端和客户端程序(一)

    1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...

随机推荐

  1. linux下分区相关知识

    Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码.以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1.hda2.hda3.hda4,而逻辑分区占用 ...

  2. GetAdaptersInfo & GetAdaptersAddresses

    I use GetAdaptersInfo to get MAC addresses of interfaces.   GetAdaptersInfo exist on old and new ver ...

  3. vue生命周期钩子,一张图片

  4. Android画图系列(二)——自己定义View绘制基本图形

    这个系列主要是介绍下Android自己定义View和Android画图机制.自己能力有限.假设在介绍过程中有什么错误.欢迎指正 前言 在上一篇Android画图系列(一)--自己定义View基础中我们 ...

  5. Python下opencv使用笔记(二)(简单几何图像绘制)

    简单几何图像一般包含点.直线.矩阵.圆.椭圆.多边形等等.首先认识一下opencv对像素点的定义. 图像的一个像素点有1或者3个值.对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值.他们表现出 ...

  6. C# 代码生成器 (存储过程生成方法)

    最近研究C#,发现写代码很麻烦,特别是创建实体.模型.接口.工厂.存储过程之类,网上有些开源的,但是不完整,也不能完整的按需求生成,于是,花了三天的时候,结合前辈的一些经验,整合了一些代码生成器,以下 ...

  7. mssql性能优化

    总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORA ...

  8. diskpart分盘代码

    List Disk Select Disk 0 Clean Create Partition Primary Size=512000 Active Format Quick Create Partit ...

  9. Unity3d 嵌入GoogleMap

    原地址“http://cl314413.blog.163.com/blog/static/190507976201442371753142/ 新建工程导入Google Maps for Unity包 ...

  10. react-native-storage + AsyncStorage 实现数据存储

    1.组件封装 import Storage from 'react-native-storage'; import { AsyncStorage } from 'react-native'; cons ...