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. CSS鼠标指针cursor样式

    参考来源:W3SCHOOL 有时我们需要在CSS布局时设定特定的鼠标指针样式,这时可以通过设定cursor来实现: url: 需使用的自定义光标的 URL. 注释:请在此列表的末端始终定义一种普通的光 ...

  2. Linux工具包

    Linux的工具包 JDK 版本:14    百度网盘:链接: https://pan.baidu.com/s/1hWqGVmsElOCBufMuscPXzw  密码:st3y 安装步骤: 1.使用S ...

  3. Blogs模板选择及基础代码设置

    #1.皮肤选择 #2.页面定制 CSS 代码 @font-face { font-family: 'FontAwesome'; font-style: normal; font-weight: nor ...

  4. HttpApplication执行顺序

    类的实例(Global继承自该类)是在 ASP.NET 基础结构中创建的,而不是由用户直接创建的.HttpApplication 类的一个实例在其生存期内被用于处理多个请求,但它一次只能处理一个请求. ...

  5. Offer快到碗里来,Volatile问题终结者

    微信公众号:大黄奔跑关注我,可了解更多有趣的面试相关问题. 写在之前面试问题概览面试回顾大黄可见性Demo演示小插曲大黄可见性Demo演示小插曲大黄可见性Demo演示小插曲总结番外 写在之前 Hell ...

  6. 拖拽一个元素如此简单,mouse、drag、touch三兄弟的用处

    最近需要做一个投票活动,上传图片时需要拖拽.缩放来裁剪图片,vue的组件不少,不过自己动手才能丰衣足食,一味使用别人的组件实在难以进步,所以自己研究一番. 一.mouse.drag.touch傻傻分不 ...

  7. Java学习日报7.31

    package bank;import java.util.*;public class Bank { private Scanner sc=new Scanner(System.in); priva ...

  8. GitHub上的开源复刻:暗黑破坏神2

    现在的00后少年可能已经不太了解<暗黑破坏神2>这款由暴雪打造的经典游戏. 该游戏上市的时候,国内个人家用电脑还没有那么普及,网络游戏也没有那么风靡,现在的孩子可能无法想象,那时候网吧里的 ...

  9. 2.2.1 Sqoop1的基本架构

    当用户通过shell命令提交迁移作业后,Sqoop会从关系型数据库中读取元信息,并根据并发度和数据表大小将数据划分成若干分片,每片交给一个Map Task处理,这样多个Map Task同时读取数据库中 ...

  10. Hbase学习Hbase基础介绍

    一.产生背景 自1970年以来,关系数据库用于数据存储和维护有关问题的解决方案.大数据的出现后,好多公司实现处理大数据并从中受益,并开始选择像Hadoop的解决方案.Hadoop使用分布式文件系统,用 ...