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/
随机推荐
- 12:打印1到最大的n位数
面试题12:打印1到最大的n位数 剑指offer题目12,题目如下 输入数字n,按顺序打印出1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的三位数999 方法一 和面试题11< ...
- 如何修改antd中表格的表头样式和奇偶行颜色交替
在做antd表格时通常会用到table组件,但是table的表头时给定的,那么怎么修改表头的颜色呢? 这里用的时less的写法,在全局环境中写,所有的table表头都会变成自己定义的颜色 定义好表头的 ...
- pyCharm最新2019激活码
破解补丁激活优点:到期时间为2099年,基本为永久啦 缺点:相对服务器激活麻烦些,但是一共只需要3个步骤,其实并不麻烦 一.下载 https://pan.baidu.com/s/1mcQM8CLUnw ...
- 一次绕过防火墙获取RCE以及提权到root权限的渗透过程
本文是关于Apache struts2 CVE-2013-2251是由于导致执行远程命令的影响而被高度利用的漏洞.简而言之, 通过操纵以“action:”/”redirect:”/”redirectA ...
- Web Service(上)
1.XML CDATA指不应由XML解析器进行解析的文本数据. 在XML元素中,<和&是非法的.解析器会把字符<解释为新元素的开始,把字符&解释为字符实体的开始. 某些文本 ...
- ImageView的android:scaleType各属性含义(zz)
android:scaleType是控制图片如何resized/moved来匹对ImageView的size.ImageView.ScaleType / android:scaleType值的意义区别 ...
- (转)java getResourceAsStream的使用方法
背景:对于java项目中配置文件加载时候的绝对路径和相对路径做一个清晰的认识! 1 分析路径 在Java项目中会经常用到getResourceAsStream这个函数获取一些配置文件,但是怎样正确使用 ...
- FPGA/SOPC学习转载
转自小時不識月http://www.cnblogs.com/yuphone/archive/2010/08/27/docs_plan.html 新网址为:http://andrewz.cn [连载计划 ...
- 勉励自己--淡定的CrazyDog
明天就要靠六级,今天只是背了一篇作文,做了两篇阅读,收获很小啊,但是要求自己一定要写,博客,我就把自己背的作文模板写成日记好了(纯手打) Relationship Between Major and ...
- 利用机器学习实现微信小程序-加减大师自动答题
之前有看到微信小程序<跳一跳>别人用python实现自动运行,后来看到别人用hash码实现<加减大师>的自动答题领取娃娃,最近一直在研究深度学习,为啥不用机器学习实现呢?不就是 ...