开发脚本自动部署及监控

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. 「Haskell 学习」一 环境与大致了解

    感谢<Real World Haskell>在网上的免费发布,可以白嫖学Haskell这个久闻大名的函数式编程语言了. 本文运行于openSUSE Tumbleweed下,运行相关命令时留 ...

  2. deeplearning.ai课程学习(2)

    第二周:神经网络的编程基础(Basics of Neural Network programming) 1.逻辑回归的代价函数(Logistic Regression Cost Function) 逻 ...

  3. Structure From Motion(SFM,从运动恢复结构)

    Structure From Motion(SFM,从运动恢复结构) 阅读相关文献: Wu et al. Multicore Bundle Adjustment Agarwal et. al. Bun ...

  4. Pro Git - 笔记3

    Git Branching Branches in a Nutshell Branches in a Nutshell let’s assume that you have a directory c ...

  5. [比赛总结]ACM div3 G 比赛总结

    这次题目总体感觉和做阅读理解差不多,英文题目读起来相当费劲. 另外,这次比赛整个队伍中我们三个都突出存在的问题就是,把简单问题复杂化,抓不到事物的本质,因此很容易的就被题目误导. 比如C题,明明想到了 ...

  6. phpStoram破解方法

  7. eclipse安装问题

    eclipse安装之前需要安装JDK. 注意:eclipse和JDK需要一致,如都是64位或者都是32位. 不然会报错.

  8. Javascript中闭包常用场景

    一.前言 有准备去看Javascript框架,所以对于Javascript和原型继承有必要去了解,这边小记一下闭包比较好的例子~ 二.正文 先来一下“闭包”的解释~ 一个拥有许多变量和绑定了这些变量的 ...

  9. JS判断页面是否加载完成

    用 document.readyState == "complete" 判断页面是否加载完成 传回XML 文件资料的目前状况. 基本语法intState = xmlDocument ...

  10. BZOJ2437 NOI2011兔兔与蛋蛋(二分图匹配+博弈)

    首先将棋盘黑白染色,不妨令空格处为黑色.那么移动奇数次后空格一定处于白色格子,偶数次后空格一定处于黑色格子.所以若有某个格子的棋子颜色与棋盘颜色不同,这个棋子就是没有用的.并且空格与某棋子交换后,棋子 ...