开发脚本自动部署及监控

1.编写脚本自动部署反向代理、web、nfs;

(1)、部署nginx反向代理三个web服务,调度算法使用加权轮询;

 (2)、所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性;

脚本如下
#!/bin/sh
Nginx_WebInstall(){
systemctl stop firewalld
setenforce
ps -aux | grep nginx |grep -v "grep"
if [ $? -ne ]
then
yum install epel-release -y &>/dev/null;
yum install nginx -y &>/dev/null;
systemctl start nginx;
echo "nginx is successful!!"
else
systemctl restart nginx fi
} Conf_Nginx(){
if [ -f "/etc/nginx/nginx.conf" ]
then
sed -ri '/^http/a upstream xyyweb { ' /etc/nginx/nginx.conf
sed -ri '/^upstream/a server 192.168.31.101 weight=3; \n }' /etc/nginx/nginx.conf
sed -ri '/^upstream/a server 192.168.31.164 weight=3;' /etc/nginx/nginx.conf
sed -ri '/^upstream/a server 192.168.31.131 weight=3;' /etc/nginx/nginx.conf
sed -ri '47a \\n\t location \/ {\n\t\t proxy_pass http://xyyweb;\n\t}' /etc/nginx/nginx.conf
elif [ $? -eq ]
then
systemctl restart nginx
else
echo "input file false."
fi
} Nginx_WebInstall ##这个命令只安装web服务器
Conf_Nginx ##这个是进行修改配置文件(两者同时运行时是安装代理服务器) Nfs_install(){
if [ -s "/etc/exports" ]
then
systemctl stop firewalld
setenforce
yum -y install rpcbind nfs-utils &>/dev/null;
echo "rpcbind and nfs is successful!!"
elif [ $? -eq ]
then
systemctl enable nfs-server.service;
systemctl enable rpcbind.service;
systemctl start rpcbind;
systemctl start nfs;
Rpc=`rpcinfo -p localhost|wc -l;`
ps -ef|grep nfsd
elif [ $Rpc -eq -o $? -eq ]
then
echo "rpcbind and nfs is start success!!"
fi
mkdir /share; echo "/share 192.168.31.0/24 (rw,sync,fsid=0)" >/etc/exports chmod /share }
Nfs_install ##安装nfs的命令;

 

web节点服务器挂载nfs是 只需在上面执行mount -t nfs ipaddress:/share  /web-serverdir

 

 

安装nginx:

 

修改配置文件:

 

 

安装nfs:

 

 

2、编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件

#!/bin/sh
NgxMonitor(){
ps -ef | grep nginx| grep -v grep
if [ $? -ne ]
then
msg="TIME:$(date +%F_%T)
HOSTNAME:$(hostname)
IPADDR:$(ifconfig |awk 'NR==2{print $2}')
MSG:Nginx program is crash, Waiting to restart"
echo $msg
/usr/bin/my_mail $msg
systemctl restart nginx
fi
} NfsMonitor(){
ps -ef | grep nfs| grep -v grep
if [ $? -ne ]
then
msg="TIME:$(date +%F_%T)
HOSTNAME:$(hostname)
IPADDR:$(ifconfig |awk 'NR==2{print $2}')
MSG:NFS program is crash, Waiting to restart"
echo $msg
/usr/bin/my_mail $msg
systemctl restart nginx
fi
} MemMonitor(){
mem_use=`free | awk 'NR==2{print $3}'`
mem_total=`free | awk 'NR==2{print $2}'`
mem_per=`echo "scale=2;$mem_use/$mem_total"|bc -l |cut -d . -f2` if (( $mem_per > ))
then
msg="TIME:$(date +%F_%T)
HOSTNAME:$(hostname)
IPADDR:$(ifconfig |awk 'NR==2{print $2}')
MSG:Memory usage exceeds the limit,current value is ${mem_per}%"
echo $msg
/usr/bin/my_mail $msg
fi
} DiskMonitor(){
space_use=`df $disk |awk 'NR==2{print $5}'|cut -d% -f1` if [ $space_use -gt ]
then
msg="TIME:$(date +%F_%T)
HOSTNAME:$(hostname)
IPADDR:$(/usr/sbin/ifconfig |awk 'NR==2{print $2}')
MSG:Disk space usage exceeds the limit,current value is ${space_use}%"
echo $msg
/usr/bin/my_mail $msg
fi
} NgxMonitor
NfsMonitor
MemMonitor
DiskMonitor

 

 

 3.编写计划任务,定时运行监控脚本,完成监控操作

 

linux基础 -nginx和nfs代理 开发脚本自动部署及监控的更多相关文章

  1. linux开发脚本自动部署及监控

    linux开发脚本自动部署及监控 开发脚本自动部署及监控一.编写脚本自动部署反向代理.web.nfs:要求:1.部署nginx反向代理三个web服务,调度算法使用加权轮询: #!/bin/sh ngx ...

  2. 脚本自动部署及监控 web

    1.编写脚本自动部署反向代理.web.nfs: I.部署nginx反向代理两个web服务,调度算法使用加权轮询 II.所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性: ...

  3. shell脚本自动部署及监控

    一.shell脚本部署nginx反向代理和三个web服务 1 对反向代理服务器进行配置 #!/bin/bash #修改用户交互页面 用户输入参数执行相应的参数 #安装epel扩展包和nginx fun ...

  4. 010-- 开发脚本自动部署nginx_web和nfs及监控内存

    1.编写脚本自动部署反向代理.web.nfs: #!/bin/bash #检测安装nginx function detection_nginx(){ if [ -f /etc/nginx/nginx. ...

  5. CentOS/Linux内存占用大,用Shell脚本自动定时清除/释放内存

    CentOS/Linux内存占用大,用Shell脚本自动定时清除/释放内存来自:互联网 时间:2020-03-22 阅读:114以下情况可能造成Linux内存占用过高服务配置存在直接分配错误,或隐性分 ...

  6. windows/Linux下设置ASP.Net Core开发环境并部署应用

    10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用 创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 ...

  7. shell脚本编写-自动部署及监控

    1.编写脚本自动部署反向代理.web.nfs: I.部署nginx反向代理两个web服务,调度算法使用加权轮询 II.所有web服务使用共享存储nfs,保证所有web都对其有读写权限,保证数据一致性: ...

  8. Linux安装Nginx使用反向代理

    nginx的反向代理功能(自带了反向代理的功能,天生的二道贩子)1.实验环境准备准备2个服务器,都安装好nginx软件nginx1 192.168.13.79 作为web服务器 (理解为火车票售票点) ...

  9. 10分钟学会在windows/Linux下设置ASP.Net Core开发环境并部署应用

    创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 来创建,其优点是简单方便,但需要安装最新版本Visual Studio 2017 prev ...

随机推荐

  1. 使用fiddler和jmeter进行简单的接口测试。

    初学接口测试,以下内容是记录首次使用fiddler和jmeter进行接口测试的步骤,可能步骤有点繁琐,如果有不对的地方,欢迎大家指正. 准备活动: 1.打开fiddler,打开fiddler以后会自动 ...

  2. appium + Python + iOS 滑屏方法(appium版本大于1.5)

    之前一直在搞android的自动化,滑动操作一直都用swipe(),比如: he1 = int(dr.get_window_size()['height'] * 0.8)he2 = int(dr.ge ...

  3. Linux-ls,cd,type命令

    windows: dll:dynamic link library,动态链接库 Linux: .so:shared object,共享对象 操作系统: kernel:内核: 1.进程管理 2.内核管理 ...

  4. Python 学习笔记之 Numpy 库——数组基础

    1. 初识数组 import numpy as np a = np.arange(15) a = a.reshape(3, 5) print(a.ndim, a.shape, a.dtype, a.s ...

  5. HDU 1271 整数对(思路题)

    假设删除第k位,把整数A表示成如下形式: A = a * 10^(k+1) + b * 10 ^k + c; 则: B = a * 10^k + c; N = A + B = (11*a+b)*10^ ...

  6. 软件工程项目组Z.XML会议记录 2013/10/22

    软件工程项目组Z.XML会议记录 [例会时间]2013年10月22日星期二21:00-22:30 [例会形式]小组讨论 [例会地点]三号公寓楼会客厅 [例会主持]李孟 [会议记录]周敏轩 会议整体流程 ...

  7. 使用SetOperations(无序)操作redis

    方法 c参数 s说明 Long add(K key, V... values); K key:集合key V... values:key对应的值 向集合中添加一个或多一个元素 Long remove( ...

  8. HDU 1005 Wooden Sticks

    http://acm.hdu.edu.cn/showproblem.php?pid=1051 Problem Description There is a pile of n wooden stick ...

  9. Eclipse下JRebel6.5.0热部署插件安装、破解及配置

    发现一个问题:如果安装了jRebel,但是并未对项目添加jRebel监听时,如果重写jar包中的类, 虽然重写后的类会得到编译(classes中的class已经是修改后的class),但是并不会调用重 ...

  10. 当网卡收到的包的目的地址是主机上另一个网卡的地址.arp总结

    2019/01/13 今天测试发现结果不符合预期呀,发现设置了arp_filter之后,仍然是能ping通主机上的另外一张网卡.但是现在的问题是 -------------------- 内核中是如何 ...