linux基础 作业篇

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 = ‘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‘] = ‘你是风儿我是沙,缠缠绵绵回我家‘
    msg[‘From‘] = ‘[email protected]‘
    msg[‘To‘] = ‘[email protected]‘
    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 #每一分钟检测一次

时间: 2024-12-27 23:33:28

linux基础 作业篇的相关文章

Linux基础命令篇(1)

把此文献给想要自学Linux操作系统的童鞋,用来了解一下Linux的基础操作,我将由基础到深入的更新Linux相关知识,好,我们一起来看基础命令.(Linux中想要实现一个功能,可以通过多个命令来实现,我只是把自己习惯用的命令写出来,Linux不同于Windows,它所有功能都通过命令来实现,命令需要反复敲打,反复练习,才可以真正的掌握.)(进入后是在vim的命令模式下,按a键可以编辑其内容,编辑后按ESC退到命令模式,再按 :进入末行模式,输入wq即可保存并退出,关于vim编辑器的使用,会在后

linux基础-安装篇

linux现在的版本已经升级到7.x的版本了,现在虽然企业还是使用6.x的版本,但是未来的趋势肯定是往7的方向发展的,很多的培训机构或者一些学校的课程也都更新的7的版本进行教学,下面的安装实例就是以7的版本进行的: 1.下载linux的iso镜像文件 下载地址是:http://pan.baidu.com/s/1bnD2fwz(red hat) https://www.centos.org/download(centos) 2.安装:我是安装在vmware12的虚拟平台上的,虚拟平台的安装和服务器

鸟哥的Linux私房菜——基础学习篇 —— 笔记2

at 语法 == 注意,输入at之后便进入命令行模式 ------- 不管怎么样,只会执行一次. [test @test test]# at [-m] TIME (输入工作指令)[test @test test]# atq (查看当前工作流程)[test @test test]# atrm [jobnumber] (删除流程) -m :执行at规范的工作流程时,将屏幕输出结果mail给输入指令的用户TIME :时间格式,有如下几个: ================== 格式有多种,但没有可以间

Linux 初探 (基础认知篇)

linux 初探 (基础认知篇) 什么是linux? Linux是开源的类Unix系统,单纯的术语Linux来说其实仅仅指由林纳斯.托瓦兹开发并于1991年发布的一款存在于内核空间的操作系统内核(kernel). 为什么会开发要开发内核呢? 要从应用程序是如何在计算机上跑起来谈起,早期的应用程序需要了解CPU指令集利用汇编等语言进行开发.CPU的常见指令集架构:x86.x64(早期称其为amd64)兼容x86.m68000(m68k).arm.power.power pc(ppc,桌面级powe

Linux新手入门书籍推荐 鸟哥的linux私房菜-基础学习篇

这本书写的不错.赞~\(≧▽≦)/~ 2017-02-24 下午,我开始在Linux下写第一个.c程序,在终端打印hello world.gcc 源代码文件之后,输出可执行文件,但是 当我输入文件名执行它的时候,却提示我 无法找到命令.于是我找百度,查资料,花了半个小时,终于找到解决方法了, 输入"./filename"即可.... 2017-02-25 我看<基础学习篇>这本书,在P158页下面的例题讲解中找到了昨天下午异常的解析.我就很是感慨,心想:要是早看这本书,半个

【Linux】鸟哥的Linux私房菜基础学习篇整理(一)

最近,一直在写PPC的模拟器和汇编器,也在做设计.所以重新看了看<鸟哥的Linux私房菜>,还是有好多命令不太熟悉.就打算写几篇blog记下来. 1. nl [-bnw] filename:添加行号打印参数:-b:指定行号指定的方式,主要有两种: -b a:表示不论是否为空行,也同样列出行号(类似cat -n): -b t:如果有空行,空的那一行不要列出行号(默认值).-n:列出行号表示的方法,主要有三种: -n ln:行号在屏幕的最左方显示: -n rn:行号在自己字段的最右方显示,且不加0

Linux及Arm-Linux程序开发笔记(零基础入门篇)

Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html 目录 一.Arm-Linux程序开发平台简要介绍... 3 1.1程序开发所需系统及开发语言... 3 1.2系统平台搭建方式... 4 二.Linux开发平台搭建... 5 2.1安装虚拟工作站... 5 2.2安装Linux虚拟

Linux系统管理——基础命令篇

终于开始接触Linux,现在是一个标准的菜鸟,那么就踏踏实实,一步一步开始进阶,希望我的博客慢慢可以给后来人带来帮助. 废话少说,下面就是我所接触的Linux系统管理的一些基础命令,以及我个人添加的命令的释义,还望大大们多多指教. 一.Linux命令行基础 [[email protected] ~]# uname -r       //查看内核版本 [[email protected] ~]# uname -a       //查看内核相关详细信息 [[email protected] ~]#

【Linux】鸟哥的Linux私房菜基础学习篇整理(二)

1. dumpe2fs [-bh] devicename:查询superblock信息.参数:-b:列出保留为坏道的部分:-h:列出superblock的数据,不会列出其他的区段内容. 2. df [-ahikHTm] 目录或文件名:列出文件系统的整理磁盘使用量.参数:-a:列出所有的文件系统,包括系统特有的/proc等文件系统:-k:以KB的容量显示各文件系统:-m:以MB的容量显示各文件系统:-h:以人们易阅读的GB.MB.KB等格式自行显示:-H:以M=1000K替代M=1024K的进位方