Linux基础-Shell脚本
任务一目标:自动部署、初始配置、并启动nginx反向代理服务
把任务拆分来看-自动部署部分,就是先下载安装Nginx
首先建立一个很NB霸气的目录还有一个同样NB霸气的.sh文件
/NBshell/MissionOne.sh

自动化部署代码如下:
#/bin/bash
systemctl status nginx
if(($?==))
then
yum install -y nginx
if(($?==))
then
#echo 'Yes!'
systemctl start nginx
if(($?==))
then
echo "Congratulations!! Nginx start OK!!"
else
echo "Sorry is Fail!!!"
fi
else
echo"sorry install is Fail!!!" fi
elif(($?==))
then
systemctl start nginx
if(($?==))
then
echo "Congratulations!! Nginx start OK!!!"
else
echo "sorry!!"
fi
elif(($?==))
then
echo "OKOKOK!!!"
else
echo "I am so sorry"
fi
检测系统是否安装nginx如果没有,就安装nginx,并启动
如果已安装未启动,就启动,如果已启动,就万事大吉了!
其次是初始化配置成反向代理,也就是对/etc/nginx/nginx.config进行编辑
使用sed流式编辑工具
echo "config writing...."
sed -ri '/^http/a upstream Yanlong {' /etc/nginx/nginx.conf
sed -ri '/^upst/a server yanlongweb1\;' /etc/nginx/nginx.conf
sed -ri '/^server yanlongweb1/a server yanlongweb2\;' /etc/nginx/nginx.conf
sed -ri '/^server yanlongweb2/a \}' /etc/nginx/nginx.conf
sed -ri '/^(\ +)(location)(\ )(\/)/a proxy_pass http:\/\/Yanlong\;' /etc/nginx/nginx.conf
echo"config write is OK!"
systemctl reload nginx
if(($?==))
then
echo "HTTP load balancer is OK!"
else
echo "Sorry!!"
fi


脚本执行成功!服务器配置完成!
任务二目标:自动部署、初始配置、并启动三台web
由于物理环境的限制,只能开启两台WEB服务器分别为yanlongweb1和yanlongweb2
并执行以下脚本对nginx进行安装部署配置,并启动
#/bin/bash
systemctl status nginx
if(($?==))
then
yum install -y nginx
if(($?==))
then
#echo 'Yes!'
systemctl start nginx
if(($?==))
then
echo "Congratulations!! Nginx start OK!!"
else
echo "Sorry is Fail!!!"
fi
else
echo"sorry install is Fail!!!" fi
elif(($?==))
then
systemctl start nginx
if(($?==))
then
echo "Congratulations!! Nginx start OK!!!"
else
echo "sorry!!"
fi
elif(($?==))
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(($?==))
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 >= ))
then
echo "目前内存使用率是:${mem}%"
sleep
fi
done
后台运行./LookMem.sh &

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


Linux基础-Shell脚本的更多相关文章
- linux 基础 shell脚本命令
#########shell脚本命令#### 1.diff diff file file1 ####比较两个文件的不同 -c ####显示周围的行 -u ####按照一格式统一输出生成补丁 -r ## ...
- Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)
I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量 env:环境变量 常用系统变量: path pwd lang home his ...
- (转)Linux基础------Shell数值计算的几种方法
Linux基础------Shell数值计算的几种方法 原文:http://blog.csdn.net/fu_wayne/article/details/21620639 在Linux下总会遇到数值计 ...
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- 使用C#给Linux写Shell脚本(下篇)
在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...
- Linux/Unix shell 脚本中调用SQL,RMAN脚本
Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...
- Linux常用Shell脚本珍藏【转载】
我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本.如何学好脚本,最关键的 ...
- 从windows到linux的shell脚本编码和格式问题
从windows到linux的shell脚本编码和格式问题 从windows到Linux的shell脚本编码和格式问题 1.异常问题 :set ff=unix 启动脚本在启动时报错比如执行sh s ...
- Linux执行shell脚本方式及区别&命令后台运行
Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/
随机推荐
- [转贴]systemd 编写服务管理脚本
[转贴]sparkdev大神的博客, 关于 systemd的配置文件的 介绍, 自己之前二进制安装 k8s 时 超过一个 service文件 但是当时不明不白的. 现在再学习一下大神的文章 的确牛B ...
- 聚合函数count里面加条件
聚合函数中如果想汇总某一类数据,可以在括号中增加条件: sum(case when 字段>0 then 1 else 0 end) as 字段 *注意:count(case when 字段> ...
- 在MFC中显示图片(opencv Mat类型)
1,在MFC窗体中添加picture control控件,并添加对应的变量名 2,在窗体的初始化窗口中添加: namedWindow(); HWND hWnd = (HWND)cvGetWindowH ...
- 洛谷 P2598 [ZJOI2009]狼和羊的故事 解题报告
P2598 [ZJOI2009]狼和羊的故事 题目描述 "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" \(Orez\)听到这首歌, ...
- 2017 3 8 练习赛 t3 路径规划
题目大意是让你在一棵树上找到一条路径使得(路径边权和*路径最小值) 最大. 这道题有两种方法. 1.点分治,考虑过重心的每条路径是否可能成为答案,枚举从根出发的每一条路径中的最小值等于总路径的最小值, ...
- python之旅:常用模块
一.time与datetime模块 在Python中,通常有这几种方式来表示时间 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1号00:00:00开始按照秒计算的偏移量.我们 ...
- go递归打印指定目录下的所有文件及文件夹
func treedir(fpath string){ // 获取fileinfo if finfo,err := os.Stat(fpath); err == nil { // 判断是不是目录 如果 ...
- D. Dog Show 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (Online Mirror, ACM-ICPC Rules, Teams Preferred)
http://codeforces.com/contest/847/problem/D 巧妙的贪心 仔细琢磨... 像凸包里的处理 #include <cstdio> #include & ...
- C++ 文本查询2.0(逻辑查询)
代码实例实现了继承和友元之间的关系,以及为了隐藏实际继承实现,而实现的接口类,代码偏乱,楼主- -自看的(提醒作用) TextQuery.h // // Created by 徐爱东 on 17/7/ ...
- Linux运维二:CentOS6.6系统安装后的基本配置与优化
CentOS6.6系统安装完成后还需要做一些配置与优化: 一:Linux内核版本号介绍 查看内核版本: [root@Gin scripts]# uname -r 2.6.32-504.el6.x86_ ...