shell脚本自动部署及监控
2017-03-26 20:54
381 查看
一、shell脚本部署nginx反向代理和三个web服务
1 对反向代理服务器进行配置
#!/bin/bash #修改用户交互页面 用户输入参数执行相应的参数 #安装epel扩展包和nginx function ng_yum_install(){ yum install epel-release -y yum install nginx -y yum install rpcbind nfs-utils -y } #nginx init function #nginx status #nginx 开机enable function ng_init(){ systemctl start nginx systemctl enable nginx } #脚本执行 ng_yum_install sed -ri '/^http/a \ \ \ \ upstream pythonweb{\n server\ 192.168.43.21;weight=3;\n server\ 192.168.43.23;\nserver\ 192.168.43.24;\n}' /etc/nginx/nginx.conf #四个反斜杠是四个空格 sed -ri '/^ +location \/ /a proxy_pass http:\/\/pythonweb;' /etc/nginx/nginx.conf systemctl stop firewalld systemctl enable firewalld echo 'share 192.168.43.0/24(rw,sync,fsid=0)' >/etc/exports chmod -R o+w /share #修改share目录的权限 systemctl enable nfs-service.service systemctl enable rpcbind.service systemctl start rpcbind.service systemctl start nfs_service.service
2 对三台web服务器分别进行配置
function ng_yum_install(){ yum install epel-release -y yum install nginx -y yum install rpcbind nfs-utils -y #安装rpcbind和nfs systemctl enable rpcbind.service && systemctl start rpcbind.service } #nginx init function #nginx status #nginx 开机enable function ng_init(){ systemctl start nginx systemctl enable nginx } ng_yum_install mkdir /html touch /html/index.html echo 'welcome nginx' >/html/index.html sed -ri '/^ +location \/ /a root \/html;\nindex index.html; ' /etx/nginx/nginx.conf ng_init systemctl stop firewalld systemctl enable firewalld mount -t nfs 192.168.43.20:/share /var/www.html
二、编写监控脚本 服务 内存 磁盘使用率 异常报警
ps aux |grep nginx |grep -v 'grep' if[ $? -ne 0 ] then echo 'nginx is die' systemctl start nginx if[ $? -eq 0 ] then echo 'nginx now is activing' fi fi
1 Python 发送邮件工具
将此文件放到/bin下并给予可执行权限
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys import smtplib import email.mime.multipart import email.mime.text server = 'smtp.163.com' port = '25' def sendmail(server,port,user,pwd,msg): smtp = smtplib.SMTP() smtp.connect(server,port) smtp.login(user, pwd) smtp.sendmail(msg['from'], msg['to'], msg.as_string()) smtp.quit() print('邮件发送成功email has send out !') if __name__ == '__main__': msg = email.mime.multipart.MIMEMultipart() msg['Subject'] = 'python' msg['From'] = 'example@163.com' #发件人地址 msg['To'] = 'example@163.com' #收件人地址 user = '邮箱用户名' pwd = 'stmp客户端密码' content='%s\n%s' %('\n'.join(sys.argv[1:4]),' '.join(sys.argv[4:])) #格式处理,专门针对我们的邮件格式 txt = email.mime.text.MIMEText(content, _charset='utf-8') msg.attach(txt) sendmail(server,port,user,pwd,msg)
2 内存监控脚本
#!/bin/bash mem_limit=0 #测试的时候设置成0 后期根据实际需要设置 function memcheck(){ memtotal=`free |awk 'NR==2{print $2}'` memuse1=`free |awk 'NR==2{print $3}'` memuse2=`free |awk 'NR==2{print $6}'` mempercent=`echo "scale=2;($memuse1+$memuse2)/$memtotal"|bc -l |cut -d. -f2` #echo ${mempercent}% if [ $mempercent -gt $mem_limit ] 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_percent}%" echo $msg /usr/bin/mail $msg fi } memcheck #执行函数
下面是shell中执行成功的界面
这是邮箱收到的信息
3 计划任务crond
crond默认是开机启动的
crontab -e -u root # 为root用户添加计划任务 * * * * * *代表分钟、小时、日、月、周
crontab -l 查看上次添加的计划任务
tail -f /var/log/cron # 查看日志
相关文章推荐
- Lvs别样的自动部署监控shell脚本
- Lvs别样的自动部署监控shell脚本
- Linux服务器监控SHELL脚本(自动发邮件)(转)
- 【自动构建系列】自动部署环境的shell脚本
- 在Ubuntu上自动部署Jetty的shell脚本
- 用shell脚本监控linux系统 自动发送邮件
- 用shell写的jboss自动部署脚本
- 监控硬盘容量并自动邮件报警的shell脚本
- shell自动监控重启tomcat脚本
- SHELL脚本自动部署KVM虚拟化
- 监控php-fpm并自动重启服务的shell脚本
- 我在写shell自动部署脚本碰到的问题
- 用tarball实现liferay自动安装部署5-shell 脚本概述
- SHELL脚本自动部署KVM虚拟化
- 五、自动监控ADSL并重拔号的shell脚本
- 【Shell/Python】Linux 进程自动监控bash shell脚本 监控VPS服务器负载/CPU及内存占用 自动重启
- 自动监控主从MySQL同步的SHELL脚本
- shell自动监控重启tomcat脚本
- bash shell 监控 coffee, jade 脚本以便及时自动编译
- shell自动监控重启Tomcat脚本