1.自动部署反向代理 web nfs

#!/usr/bin/python
#-*- coding:utf-8 -*-
#开发脚本自动部署及监控
#1.编写脚本自动部署反向代理、web、nfs;
#!/bin/bash
#检测安装nginx
function detection_nginx(){
if [ -f /etc/nginx/nginx.conf ] #判断nginx文件是否存在
then
echo 'nginx has been installed'
exit
else
then
yum install epel-release -y
yum install nginx -y
echo 'nginx already installed'
fi
} #改写配置文件
function modify_nginx_conf(){
msg='upstream Pythonweb{ server 192.168.205.129 weight=3;server 192.168.205.129;server 192.168.205.129}'
sed -ri "/^http/a $msg" /etc/nginx/nginx.conf #增加upstream
sed -ri "/^ *location \/ \{$/a proxy_pass http://Pythonweb\;" /etc/nginx/nginx.conf #修改localtion }
systemctl reload nginx #重新加载nginx
#检测安装nfs和rpcbind
function detection_nfs(){
if [ -d /var/lib/nfs ]
then
echo 'nfs has been installed'
exit
else
then
yum install rpcbind nfs-utils -y
echo 'rpcbind nfs-utils already installed'
fi
} function start_service(){
#创建共享目录
mkdir /share
#给用户增加写的权限
chmod -R o+w /share/
#改写nfs的配置文件
echo '/share 192.168.205.0/24(rw,sync,fsid=0)' >> /etc/exports #以追加的方式写入
#启动服务
systemctl start rpcbind.server
systemctl start nfs-utils.server
#设置开机启动
systemctl enable nfs-server.service
systemctl enable rpcbind.service
} detection_nginx #执行检测安装nginx函数
modify_nginx_conf #执行改写nginx.conf函数
detection_nfs #执行检测安装nfs函数
start_service #执行启动服务函数

2.监控主机的内存,超过阈值则发送报警邮件

#!/usr/bin/python
#-*- coding:utf-8 -*- 题目:监控主机的内存,超过阈值则发送报警邮件 1.准备发送邮件的代码 #!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import smtplib
import email.mime.multipart
import email.mime.text server = 'smtp.163.com'
port = '' 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'] = '你是风儿我是沙,缠缠绵绵回我家'
msg['From'] = 'python4_mail@163.com'
msg['To'] = 'python4_recvmail@163.com'
user = 'python4_mail'
pwd = 'sbalex3714'
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) #把上述代码放在/usr/bin/my_mail 中
vim /usr/bin/my_mail #把代码拷贝到里面
chmod +x my_mail #给文件my_mail 可以执行的权限 2.新建我自己的脚本监控文件15.sh
#!/bin/bash
men = 0 #内存使用超过0%就会报警 function monitor_mem(){
mem_total = 'free | awk 'NR==2{print $2}'' \
'' \
mem_use ='free | awk 'NR==2{print $3}''
mem_per = 'echo "scale=2;$mem_use/$mem_total" |bc -l |cut -d. -f2'
if [ $mem_per -gt $ mem ]
then
msg='TIME:$(date +%F_%T)'
HOSTNAM:$(hostname)
IPADDR:$(ifconfig | awk 'NR==2{print $2}')
echo $msg
/usr/bin/my_mail $mag
fi
} #3.编写计划任务 crontab -e -u root
* * * * * /root/home/gandong/15.sh restart #每一分钟检测一次

linux基础 作业篇的更多相关文章

  1. linux基础一篇就够了

    Linux学习笔记 粗略笔记第一版,全文约2000行50000字 1. 时间和日历 date:查看当前时间 cal:查看当月日历 cal 2018:查看年日历 cal 10 2018:指定某年某月日历 ...

  2. Linux 基础学习篇 序篇

    读序篇可以知道的: 1.有些指令知道前和知道后,自己的操作是完全不同的,可能知道前,会用reset把系统重新启动一遍,而知道后会使用ps和kill来关闭进程. 2.如果对Linus的学习知识" ...

  3. Linux 基础学习篇笔记 Linux基础知识

    哎呀,翻到第一篇,映出眼帘的标题:从Unix到Linux(我就知道学习不能急,不能像我,看个简介,就赶忙去查了,原来作者在这里给出详细的介绍了) 1.1根据书上写的,原来linux的内核是被Linus ...

  4. linux基础-安装篇

    linux现在的版本已经升级到7.x的版本了,现在虽然企业还是使用6.x的版本,但是未来的趋势肯定是往7的方向发展的,很多的培训机构或者一些学校的课程也都更新的7的版本进行教学,下面的安装实例就是以7 ...

  5. Linux 基础——开山篇

    为什么要开始学习Linux命令? 首先当然是因为工作需要了,现在的工作是负责银行调度的系统的源系统接入的工作,经常要到生产部署版本.所以……买了一本<Linux命令行与shell脚本编程大全&g ...

  6. Docker学习--Linux基础准备篇

    1.docker命令不需要附带敲sudo的解决办法 由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用 ...

  7. 第一天 Linux基础篇

    课程介绍 1.认识Linux的不同版本 2.以及应用领域 3.文件和目录 4.Linux命令概述 5.Linux命令-文件 6.Linux命令-系统管理-磁盘管理 认识Linux 什么是操作系统  生 ...

  8. 鸟哥Linux私房菜基础学习篇学习笔记3

    鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...

  9. 鸟哥Linux私房菜基础学习篇学习笔记2

    鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *. ...

随机推荐

  1. mp4文件格式解析

    目前MP4的概念被炒得很火,也很乱.最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准.随后MP4概念被转移到视频上,对应的是MPEG-4标准.而现在我们流行的叫法,多半是指能播放M ...

  2. javascript解析机制、闭包详解

    js解析机制: js代码解析之前会创建一个如下的词法环境对象(仓库):LexicalEnvironment{ } 在扫描js代码时会把: 1.用声明的方式创建的函数的名字: 2.用var定义的变量的名 ...

  3. python实现TCP/UDP通信

    一.说明 对于TCP/udp的说明已经很多了,我在这里只是简单的说明一下 二.套接字scoket 套接字是一种具有之前所说的"通信端点"概念的计算网络数据结构.相当于电话插口,没它 ...

  4. java程序包不存在

    当把classpath和path设置好之后. 自己写了个类的,然后放在test_package\mypackage路径下.主函数要用到.但是却出错了. 我一开始怀疑自己的classpath配置错了,在 ...

  5. ie旋转滤镜Matrix

    旋转一个元素算是一个比较常见的需求了吧,在支持CSS3的浏览器中可以使用transform很容易地实现,这里有介绍:http://www.css88.com/archives/2168,这里有演示ht ...

  6. SocketServer模块

    在利用select实现伪并发的socket博文中我们说了: 如果要实现一个server端可以和多个客户端进行通信可以使用 1.多线程 2.多进程 3.select I/O多路复用 在那篇博文中我们介绍 ...

  7. TextRank:关键词提取算法中的PageRank

    很久以前,我用过TFIDF做过行业关键词提取.TFIDF仅仅从词的统计信息出发,而没有充分考虑词之间的语义信息.现在本文将介绍一种考虑了相邻词的语义关系.基于图排序的关键词提取算法TextRank [ ...

  8. 抛弃vue-resource拥抱axios

    vue-resource用法 import Vue from 'vue' import VueResource from 'vue-resource' Vue.use(VueResource) 是不是 ...

  9. PRINCE2重要性--光环国际培训

    项目的重要性 答:对于当今的组织来说,一个关键的挑战,就是能够成功地平衡以下两个并存的.互相竞争的方面:保持现有的商业运营--盈利能力.服务质量.客户关系.品牌忠实度.生产效率.市场信心等,这些被称为 ...

  10. CentOs6系统安装及前期为安装Cdh4准备

    问题1: 虚拟机工具:VMware Workstation 前提:虚拟机安装使用64位操作系统时涉及到一个CPU虚拟化的问题,如果BIOS没有开启CPU的虚拟化选项,创建和打开64位虚拟机就会报错. ...