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必须填写 ...
随机推荐
- ios 多线程之NSThread篇举例详解
这篇博客是接着总篇iOS GCD NSOperation NSThread等多线程各种举例详解写的一个支篇.总篇也包含了此文的链接.本文讲解的知识点有NSThread的开始.取消.在当前线程执行任务. ...
- 打算安装个Ubuntu双系统,遇到了些基本概念问题(主分区、活动分区、扩展分区、逻辑分区)
和运维的同事聊天,了解到: 1.XP系统时代(老的硬盘分区形式和分区表),最多允许建4个“主分区”,为了解决这个限制,就有了“扩展分区”的概念: 2.在“扩展分区”上,我们就可以建很多的“逻辑分区”, ...
- 移动端与PHP服务端接口通信流程设计(基础版)
针对 --->非开放性平台 --->公司内部产品 接口特点汇总: 1.因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效: 2.因为是非开放性的,所以OAuth那套协议是行 ...
- powerbuilder webbrowser 内嵌浏览器 select下拉框无法使用
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MA ...
- 学习实践:使用模式,原则实现一个C++数据库訪问类
一.概述 在我參与的多个项目中.大家使用libMySQL操作MySQL数据库,并且是源代码级复用,在多个项目中同样或相似的源代码.这种复用方式给开发带来了不便. libMySQL的使用比較麻烦.非常e ...
- sublime 插件cssrem安装及配置
CSSREM CSSREM 是一个CSS的 px 值转 rem 值的Sublime Text3自动完成插件.先来看看插件的效果: 一个CSS的px值转rem值的Sublime Text 3自动完成插件 ...
- 利用JS实现vue中的双向绑定
Vue 已经是主流框架了 它的好处也不用多说,都已经是大家公认的了 那我们就来理解一下Vue的单向数据绑定和双向数据绑定 然后再使用JS来实现Vue的双向数据绑定 单向数据绑定 指的是我们先把模板写好 ...
- linux 局域网内文件传送
Linux scp命令用于Linux之间复制文件和目录,具体如何使用这里好好介绍一下,从本地复制到远程.从远程复制到本地是两种使用方式.这里有具体举例: ================== Linu ...
- C#秘密武器之LINQ to SQL
LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操 ...
- php核心技术与最佳实践知识点(上)
一.基础 1.serialize:序列化一个类,只是保存了类的属性,所以还需要反序列化unserialize的时候包含该类. 2.对于将array转为object,这个转换因为没有具体的类,所以称为了 ...