21:开发脚本管理服务端LVS案例
[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案例的更多相关文章
- 转: 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端
from: http://ybak.iteye.com/blog/1853335 基于netty+ protobuf +spring + hibernate + jgroups开发的游戏服务端 游戏服 ...
- ubuntu下安装 gSOAP 用于C/C++开发web service服务端与客户端
昨天在ubuntu下进行安装gSOAP,费了很多时间,没成功,今天又来找了大量教程资料,终于一次成功,这里写下自己的安装步骤和方法,供大家参考. 首先下载gsoap,我下载的是gsoap-2.8.1. ...
- 适合新手:从零开发一个IM服务端(基于Netty,有完整源码)
本文由“yuanrw”分享,博客:juejin.im/user/5cefab8451882510eb758606,收录时内容有改动和修订. 0.引言 站长提示:本文适合IM新手阅读,但最好有一定的网络 ...
- 网络编程之TCP客户端开发和TCP服务端开发
开发 TCP 客户端程序开发步骤 创建客户端套接字对象 和服务端套接字建立连接 发送数据 接收数据 关闭客户端套接字 import socket if __name__ == '__main__': ...
- 支付宝移动支付开发详细教程服务端采用.net mvc webapi(C#)
转自:http://www.kwstu.com/ArticleView/netmvc_201511132005431321 最近开发手机app需要实现移动支付功能,由于考虑支付安全将支付宝生成签名写到 ...
- 微信移动支付V3开发详细教程服务端采用.net mvc webapi(C#)
转自:http://www.kwstu.com/ArticleView/netmvc_201511132050268716 最近开发手机app需要实现移动支付功能,由于考虑支付安全将微信支付生成签名写 ...
- 二、网络编程-socket之TCP协议开发客户端和服务端通信
知识点:之前讲的udp协议传输数据是不安全的,不可靠不稳定的,tcp协议传输数据安全可靠,因为它们的通讯机制是不一样的.udp是用户数据报传输,也就是直接丢一个数据包给另外一个程序,就好比寄信给别人, ...
- Linux下用gSOAP开发Web Service服务端和客户端程序
网上本有一篇流传甚广的C版本的,我参考来实现,发现有不少问题,现在根据自己的开发经验将其修改,使用无误:另外,补充同样功能的C++版本,我想这个应该更有用,因为能用C++,当然好过受限于C. 1.gS ...
- Linux下用gSOAP开发Web Service服务端和客户端程序(一)
1.功能说明: 要开发的Web Service功能非常简单,就是一个add函数,将两个参数相加,返回其和. 2.C版本的程序: (1)头文件:SmsWBS.h,注释部分不可少,url部分的IP必须填写 ...
随机推荐
- .NET反编译
http://www.cnblogs.com/powertoolsteam/archive/2011/01/05/1926066.html
- 直接拿来用!最火的iOS开源项目(三)
相比Android,GitHub上的iOS开源项目更可谓是姹紫嫣红.尽管效果各异,但究其根源,却都是因为开发者本身对于某种效果的需求以及热爱.在“直接拿来用!最火的iOS开源项目”系列文章(一).(二 ...
- Vue组件进阶知识总结
上一篇我们重点介绍了组件的创建.注册和使用,熟练这几个步骤将有助于深入组件的开发.另外,在子组件中定义props,可以让父组件的数据传递下来,这就好比子组件告诉父组件:“嘿,老哥,我开通了一个驿站,你 ...
- Python数据整合与数据准备-BigGorilla介绍
参考文档:http://www.biggorilla.org/zh-hans/walkt/ 一.前言 “根据访谈记录和专家估计,数据科学家将50%至80%的时间花在搜集和准备难以梳理的数字数据的琐碎工 ...
- 警惕rapidxml的陷阱(二):在Android上默认内存池分配数组过大,容易导致栈溢出
上一篇随笔中提到了,rapidxml在每个xml对象中维护了一个内存池,自己管理变量的生存周期.看起来很好,但我们在实际使用中还是出现了问题. 项目中我们的模块很快写好了,在windows和linux ...
- Java线程:概念与原理(转)
一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程.比如在 ...
- Spring MVC防止数据重复提交(防止二次提交)
SpringMvc使用Token 使用token的逻辑是,给所有的url加一个拦截器,在拦截器里面用java的UUID生成一个随机的UUID并把这个UUID放到session里面,然后在浏览器做数据提 ...
- Web学习篇之---css基础知识(一)
css基础知识(一) 1.css样式: 载入css样式有下面四种: 1).外部样式 2).内部样式 3).行内样式 4).导入样式 <link href="layout.css&quo ...
- JAVA 模块
commons-lang3 maven repository, 项目主页 fastjson maven repository, 项目主页 fastjson 是阿里巴巴开源的序列化和反序列化 JSON ...
- unsupported major.minor version 解决方法
转载自http://hi.baidu.com/fatchong/blog/item/191da23b478bbfef15cecbae.html 一直以来都是用jdk1.5,这次 ...