21:开发脚本管理服务端LVS案例
2023-09-11 14:20:31 时间
[root@lb03 scripts]# cat lv_manager.sh #!/bin/bash #定义只能是root用户执行 if [ $UID -ne 0 ];then echo "permission deny 必须root用户执行" exit fi #文件存在就加载文件 [ -f /etc/init.d/functions ] && . /etc/init.d/functions #定义绑定的虚拟ip vip_netmask=10.0.0.13/24 vip=10.0.0.3 service_addr=10.0.0.13:80 wbs=( 10.0.0.17:80 10.0.0.18:80 ) count_pkg=$(rpm -qa|egrep ipvsadm|wc -l) function start () { #检查虚拟IP个数,IP检测和ipvsadm -ln两种方法检查 count_vip_check=$(ip a|grep 10.0.0.1[3]|wc -l) count_vip_check2=$(ipvsadm -ln|grep "10.0.0.1[3]:80"|wc -l) if [ ${count_vip_check} -eq 1 -o ${count_vip_check2} -eq 1 ] then echo "${count_vip_check} 虚拟IP已经存在" else ip addr add 10.0.0.13/24 dev eth0 ipvsadm -C ipvsadm --set 30 5 60 ipvsadm -A -t 10.0.0.13:80 -s wrr -p 20 fi #管理工具ipvsadm不存在就安装 [ ${count_pkg} -eq 0 ] && yum install ipvsadm -y 2>/dev/null #先检查一下网址通不通 for i in ${wbs[@]} do web_code=$(curl -o /dev/null -w "%{http_code}" -s $i) if [ "${web_code}" == "200" ] then echo "${i} is ok" ipvsadm -a -t 10.0.0.13:80 -r $i -g -w 1 else echo "添加的服务 ${i} 没有打开" fi done } stop () { count_vip_check=$(ip a|grep 10.0.0.1[3]|wc -l) if [ ${count_vip_check} -eq 0 ] then echo "虚拟IP 不存在" exit 11 else ip addr del 10.0.0.13/24 dev eth0 ipvsadm -C fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; *) echo "Usage {start|stop|restart}" ;; esac
================================
下面是改过的比上面好
[root@lb04 scripts]# cat lv_manager.sh #!/bin/bash #定义只能是root用户执行 if [ $UID -ne 0 ];then echo "permission deny 必须root用户执行" exit fi #文件存在就加载文件 [ -f /etc/init.d/functions ] && . /etc/init.d/functions #定义绑定的虚拟ip vip_netmask=10.0.0.13/24 service_addr=10.0.0.13:80 wbs=( 10.0.0.17:80 10.0.0.18:80 ) count_pkg=$(rpm -qa|egrep ipvsadm|wc -l) function start () { #检查虚拟IP个数,IP检测和ipvsadm -ln两种方法检查 count_vip_check=$(ip a|grep 10.0.0.1[3]|wc -l) count_vip_check2=$(ipvsadm -ln|grep "10.0.0.1[3]:80"|wc -l) if [ ${count_vip_check} -eq 1 -o ${count_vip_check2} -eq 1 ] then echo "${count_vip_check} 本地虚拟IP已经存在,将退出" && exit 22 else check_count=$(nmap 10.0.0.13|grep "Host is up"|wc -l) [ ${check_count} -gt 0 ] && echo "远端 13 ip开启,将退出" && exit 11 ip addr add 10.0.0.13/24 dev eth0 ipvsadm -C ipvsadm --set 30 5 60 ipvsadm -A -t 10.0.0.13:80 -s wrr -p 20 fi #管理工具ipvsadm不存在就安装 [ ${count_pkg} -eq 0 ] && yum install ipvsadm -y 2>/dev/null #先检查一下网址通不通 for i in ${wbs[@]} do web_code=$(curl -o /dev/null -w "%{http_code}" -s $i) if [ "${web_code}" == "200" ] then echo "${i} is ok" ipvsadm -a -t 10.0.0.13:80 -r $i -g -w 1 else echo "添加的服务 ${i} 没有打开" fi done } stop () { count_vip_check=$(ip a|grep 10.0.0.1[3]|wc -l) if [ ${count_vip_check} -eq 0 ] then echo "虚拟IP 不存在" exit 11 else ip addr del 10.0.0.13/24 dev eth0 ipvsadm -C fi } case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; *) echo "Usage {start|stop|restart}" ;; esac
相关文章
- 两个有意思的逻辑分析案例
- Xcode插件开发案例教程
- iOS开发那些事-Passbook详解与开发案例(附视频)
- 《Android开发案例驱动教程》
- TDengine 如何助力钢铁行业处理日均亿级的数据量?来看几个真实案例
- Python 爬虫开发:Ajax请求响应json案例
- 打通C/4HANA和S/4HANA的一个原型开发:智能服务创新案例
- Atitit 提升开发效率 提升团队人员能力 目录 1. 多语言扩展 提升抽象度2 2. 从上到下法 vs 从下倒上 问题诊断解决法2 2.1. 培训机制 上到下法2 2.2. 问题案例
- javascript案例21——判断用户名和密码是否匹配(while)
- Python之matplotlib:利用matplotlib绘制八象空间三维图案例(知识点包括散点图、折线图、标注文字、图例、三维坐标)之详细攻略
- js数据层中间件单页运用简单构思和应用案例
- Math/ML:时间序列数据集/时间序列预测任务的简介、常用算法及其工具、案例应用之详细攻略
- 〖Python 数据库开发实战 - MySQL篇㉞〗- 综合案例 - 新闻管理系统数据库设计的基本属性
- 〖Python 数据库开发实战 - MySQL篇㊲〗- 综合案例 - 新闻管理系统 - t_user 用户表与 t_news 新闻表的创建
- 【OpenHarmony移植案例与原理】XTS子系统之应用兼容性测试用例开发
- 实战案例丨GaussDB for DWS如何识别坏味道的SQL
- 综合案例:使用Configmap-reload动态热加载Configmap中的配置文件(三十七)
- 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享
- 【SQL开发实战技巧】系列(十一):拿几个案例讲讲translate|regexp_replace|listagg|wmsys.wm_concat|substr|regexp_substr常用函数
- 史上最全的2022年最新版软件测试面试题集锦(含答案+案例分析)【三】,再战金九银十
- Python开发入门到精通之11个案例讲透 Python 函数参数
- 基于vTESTstudio的域控制器测试用例开发及案例分享
- 【软考】案例/计算题型介绍及常见考点汇总
- Chapter2 ROS通信机制----基础篇(Ⅱ)&ROS三种通信机制原理及案例实现
- 案例分享 | 从北京农商银行实践经验看智能运维体系如何落地
- Python开发入门到精通之11个案例讲透 Python 函数参数
- 【应用案例】CANape支持基于模型的ECU开发