Linux基础-Shell脚本

任务一目标:自动部署、初始配置、并启动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%

请看效果 

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