shell脚本

vim jk.sh  #命名脚本名
 

#!/bin/bash

time=`date "+%Y-%m-%d %H:%M:%S"`      #定义时间

echo "$time"

echo  "     警告!!!!!!"

 

cpu_info(){

cpu_free=`top -i -c -bn 1| grep Cpu | awk -F ":" '{print $2}' | awk -F "," '{print $4}' | awk -F " " '{print $1}'| awk -F "." '{print $1}'`  #取cpu空闲值

echo "cpu剩余量:" $cpu_free"%"

}

 

mem_info(){

mem_used=` free -h | grep Mem | awk -F ":" '{print $2}' | awk -F " " '{print $6}'`   #取可用内存值

echo "---mem:"

echo "可用内存为:"$mem_used

}

 

disk_info(){

disk_total=`df -h | grep root | awk -F " " '{print $2}'`          #取磁盘总量

disk_used=`df -h | grep root | awk -F " " '{print $3}'`         #取磁盘使用量

disk_per=`df -h | grep root | awk -F " " '{print $5}'`        #取磁盘使用量率

echo "---disk:"

echo "磁盘总量:"$disk_total

echo "磁盘使用量:"$disk_used

echo "磁盘使用率:"$disk_per

}

 

cpu=`top -i -c -bn 1| grep Cpu | awk -F ":" '{print $2}' | awk -F "," '{print $4}' | awk -F " " '{print $1}'| awk -F "." '{print $1}'`

mem=` free -m | grep Mem | awk -F ":" '{print $2}' | awk -F " " '{print $6}'|sed s/M//g`  #把使用内存中的去M掉便于比较

disk=`df -h | grep root | awk -F " " '{print $5}'|sed s/%//g`   #把硬盘使用率中的百分号去掉便于比较

war_cpu=10   #定义cpu阈值值   

war_mem=100 #定义可用内存阈值100M

war_disk=90   #定义磁盘使用率阈值

 

main(){

if [ "$cpu" -lt $war_cpu  ] || [ "$mem" -lt $war_mem ] ||[ "$disk" -gt $war_disk ]  

#cpu剩余空间小于10   可用内存小于100M  磁盘使用率大于90

then

echo "---cpu:"  

cpu_info

mem_info

disk_info

echo ".........等待处理........."

 

else

echo "-------------"

echo "Server's fine"

echo "-------------"

 

fi

}

main
 
                                                                                  

用python实现发邮件

#导入模块
import paramiko
import smtplib
from email.mime.text import MIMEText
from email.header import Header
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) def send_mail(message):
sender = 'aa1052995312@163.com'
receiver = ['ruri9999@163.com']
subject = '报警'
username = 'aa1052995312@163.com'
password = '123456'
msg = MIMEText(message, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = 'warning<aa1052995312@163.com>'
msg['To'] = "ruri9999@163.com"
smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit() def server():
ssh.connect("192.168.88.31", 22, 'root', '123', timeout=3) #连接192.168.88.31 端口22 用户root 密码123
stdin, stdout, stderr = ssh.exec_command('./jk.sh ' ) #在linux中执行./jk.sh
msg = stdout.read().decode('utf_8')
war = "警告"
while True:
if war in msg:
send_mail(msg)
print('发送成功!!!')
break
else:
print("server's find.")
break
server()
 
 

简单监控liunx中cpu、内存、磁盘及发送邮件参考的更多相关文章

  1. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat ...

  2. AIX/Linux/HP-UX查看CPU/内存/磁盘/存储命令

    1.1    硬件环境验证方式 硬件环境主要包括CPU.内存.磁盘/存储.网络设备(如F5等).系统特有设备(如密押设备等)等,其中网络设备和系统特有设备由网络管理员或项目组提供为准,本节主要关注CP ...

  3. 你需要简单了解JVM中的内存长什么样子

    下面有关JVM内存,说法错误的是? 1.程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的 2.Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接 ...

  4. linux系统CPU内存磁盘监控发送邮件脚本

    #!/bin/bashexport PATHexport LANG=zh_CN.UTF-8###top之后输入数字1,可以查看每颗CPU的情况.###先配置好mailx邮箱账号密码:#cat>/ ...

  5. python监控CPU/内存/磁盘,超过指定百分比,发送邮件

    #!/usr/bin/python #coding:utf-8 #导入psutil模块 import psutil import yagmail def mail(subject,contents): ...

  6. python glances来监控linux服务器CPU 内存 IO使用

    什么是 Glances? Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具. 通过 Glances,我们可以监视 ...

  7. Shell采集系统cpu 内存 磁盘 网络信息

    cpu信息采集 cpu使用率 采集算法 通过/proc/stat文件采集并计算CPU总使用率或者单个核使用率.以cpu0为例,算法如下: 1. cat /proc/stat | grep ‘cpu0’ ...

  8. 获取并检查系统负载\CPU\内存\磁盘\网络

    安装依赖 需要net-tools.namp! CentOS:yum -y install net-tools nmap Ubuntu:apt-get update && apt-get ...

  9. 用python监控Linux,CPU,内存,硬盘

    #!/usr/local/bin/python3.5 #coding:utf-8 import mailll, linecache, re, socket, os, time hostname = s ...

随机推荐

  1. python 做回归

    1 一元线性回归 线性回归是一种简单的模型,但受到广泛应用,比如预测商品价格,成本评估等,都可以用一元线性模型.y = f(x) 叫做一元函数,回归意思就是根据已知数据复原某些值,线性回归(regre ...

  2. 二、LINUX文本处理三剑客之grep

    1. grep一般格式:grep [选项] 基本正则表达式 [文件],其中基本正则表达式需要用引号引起来 引号引起来的作用:a.防止被误解为shell命令,b.可以用来查找多个单词组成的字符串 gre ...

  3. python初学者-计算1-99奇数的和

    s = 0 for i in range(1,100,2): s = s + i print(s)

  4. Spring-IOC基本使用

    通过上篇文章大概知道ioc.DI的概念了,下面我们详细介绍一下 一.Spring IOC创建对象 IOC通过上文的介绍作用是控制创建对象的解释权,我们把代码重新看一下 //User.java publ ...

  5. 常见的JS手写函数汇总(代码注释、持续更新)

    最近在复习面试中常见的JS手写函数,顺便进行代码注释和总结,方便自己回顾也加深记,内容也会陆陆续续进行补充和改善. 一.手写深拷贝 <script> const obj1 = { name ...

  6. MongoDB插入数据,除去Class key

    本文来源于: 来源:CSDN 原文:https://blog.csdn.net/ClementAD/article/details/50849680 去除class字段的本质为设置 DefaultMo ...

  7. kill的使用

    Linux中Kill进程的N种方法 (2011-12-23 17:27:59) 转载▼ 标签: 杂谈 分类: ubuntu系统操作 常规篇: 首先,用ps查看进程,方法如下: $ ps -ef -- ...

  8. (转) MySQL常用Json函数

    原文:http://www.cnblogs.com/waterystone/p/5626098.html 官方文档:JSON Functions Name Description JSON_APPEN ...

  9. 大数据可视化呈现工具LightningChart的用法

    LightningChart (LightningChart Ultimate) 软件开发工具包是微软VisualStudio 的一个插件,专攻大数据可视化呈现问题,用于WPF(WindowsPres ...

  10. 阿里云centos7安装mysql8数据库

    一.安装mysql 1. mysql官网查找仓库源镜像,选择downloads https://www.mysql.com/downloads/ 2. 找到社区版 3. 选择yum仓库 4. 选择对应 ...