码迷,mamicode.com
首页 > 系统相关 > 详细

Linux基础-Shell脚本

时间:2017-03-23 20:16:24      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:检查   back   nginx反向代理   linux基础   system   roo   监控脚本   style   web   

任务一目标:自动部署、初始配置、并启动nginx反向代理服务

把任务拆分来看-自动部署部分,就是先下载安装Nginx

首先建立一个很NB霸气的目录还有一个同样NB霸气的.sh文件

/NBshell/MissionOne.sh

技术分享

自动化部署代码如下:

#/bin/bash
systemctl status nginx
if(($?==4))
        then
        yum install -y nginx
        if(($?==0))
                then
                #echo Yes!
                systemctl start nginx
                if(($?==0))
                        then
                        echo "Congratulations!! Nginx start OK!!"
                else
                        echo "Sorry is Fail!!!" 
                fi
        else
                echo"sorry install is Fail!!!"

        fi
elif(($?==3))
        then
        systemctl start nginx
        if(($?==0))
                then
                echo "Congratulations!! Nginx start OK!!!"
        else
                echo "sorry!!"
        fi
elif(($?==0))
        then
        echo "OKOKOK!!!"
else
        echo "I am so sorry"    
fi

检测系统是否安装nginx如果没有,就安装nginx,并启动

如果已安装未启动,就启动,如果已启动,就万事大吉了!

其次是初始化配置成反向代理,也就是对/etc/nginx/nginx.config进行编辑

使用sed流式编辑工具

 1 echo "config writing...."
 2 sed -ri /^http/a upstream Yanlong { /etc/nginx/nginx.conf
 3 sed -ri /^upst/a server yanlongweb1\; /etc/nginx/nginx.conf
 4 sed -ri /^server yanlongweb1/a server yanlongweb2\; /etc/nginx/nginx.conf
 5 sed -ri /^server yanlongweb2/a \} /etc/nginx/nginx.conf
 6 sed -ri /^(\ +)(location)(\ )(\/)/a proxy_pass http:\/\/Yanlong\; /etc/nginx/nginx.conf
 7 echo"config write is OK!"
 8 systemctl reload nginx
 9 if(($?==0))
10         then
11         echo "HTTP load balancer is OK!"
12 else
13         echo "Sorry!!"
14 fi

技术分享

技术分享

脚本执行成功!服务器配置完成!

任务二目标:自动部署、初始配置、并启动三台web

由于物理环境的限制,只能开启两台WEB服务器分别为yanlongweb1和yanlongweb2

并执行以下脚本对nginx进行安装部署配置,并启动

#/bin/bash
systemctl status nginx
if(($?==4))
        then
        yum install -y nginx
        if(($?==0))
                then
                #echo Yes!
                systemctl start nginx
                if(($?==0))
                        then
                        echo "Congratulations!! Nginx start OK!!"
                else
                        echo "Sorry is Fail!!!" 
                fi
        else
                echo"sorry install is Fail!!!"

        fi
elif(($?==3))
        then
        systemctl start nginx
        if(($?==0))
                then
                echo "Congratulations!! Nginx start OK!!!"
        else
                echo "sorry!!"
        fi
elif(($?==0))
        then
        echo "OKOKOK!!!"
else
        echo "I am so sorry"    
fi
echo "config writing...."
sed -ri /^(\ +)(location)(\ )(\/)/a root\ \/nginxwebservice\; /etc/nginx/nginx.conf
sed -ri /^root\ \/nginxwebservice/a index\ web.html\; /etc/nginx/nginx.conf
echo "config write is OK!"
systemctl reload nginx
if(($?==0))
        then
        echo "HTTP load balancer YanlongWEBservice is OK!"
else
        echo "Sorry!!"
fi

技术分享

脚本执行完成,检查服务启动状态

技术分享

现在进行访问web1

技术分享

访问web2

 技术分享

任务一中搭建的反向代理:

访问反向代理服务器:192.168.16.119

技术分享

技术分享

脚本执行成功!服务器搭建成功

任务三目标:监控脚本:监控每台机器的内存使用率>70%,则输出报警信息

#/bin/bash
bu=`free | awk NR==2{print $6}`
to=`free | awk NR==2{print $2}`
mem=`expr "scale=2;$bu/$to" |bc -l | cut -d. -f2`
while true
do
        if(($mem >= 70))
                then
                echo "目前内存使用率是:${mem}%"
                sleep 1
        fi
done

后台运行./LookMem.sh &

技术分享

为了实现效果,我将内存的报警阈值调为15%

请看效果 

技术分享

技术分享

 

Linux基础-Shell脚本

标签:检查   back   nginx反向代理   linux基础   system   roo   监控脚本   style   web   

原文地址:http://www.cnblogs.com/DragonFire/p/6605749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!