Ubuntu服务器上监控内存和cpu使用率shell脚本

shell脚本

一、监控系统cpu的情况

使用top命令查看linux系统cpu使用情况:
    #抓取cpu的总核数 
    grep -c 'model name' /proc/cpuinfo
    
    #使用top命令查看linux系统cpu使用情况:(-b -n 1 表只需要1次的输出结果)
    top -b -n 1 | grep Cpu
    
    us:用户态使用的cpu时间比
    sy:系统态使用的cpu时间比
    ni:用做nice加权的进程分配的用户态cpu时间比
    id:空闲的cpu时间比
    wa:cpu等待磁盘写入完成时间
    hi:硬中断消耗时间
    si:软中断消耗时间
    st:虚拟机偷取时间
    
    查看截取空闲cpu的百分比数值命令(只取整数部分 | cut -f 1 -d "."):
    top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d "."

编写cpu监控的脚本文件 cpu-usage.sh:
    #!/bin/bash
    #获取空闲CPU百分比 取整数部分
    cpuUsage=$(top -b -n 1 | grep Cpu | awk '{print $8}' | cut -f 1 -d ".")
    #cpu剩余告警阀值
    max=20
    # 如果cpu空闲使用率小于等于 max
    if [[ ${cpuUsage} -le ${max} ]]; then
    # $1 监控服务器ip
    echo "$1 上CPU剩余 : $cpuUsage %,使用率已经超过 $max %, 时间: $(date) ,请及时处理" | mail -s "$1 CPU 使用告警!" xxx@qq.com
    fi

脚本启动命令:

# 用bash 而不是sh命令启动;ip 为监控服务器ip
    bash cpu-usage.sh ip

二、监控服务器内存使用情况

查看服务磁盘使用情况:
    # 查看服务器磁盘使用情况
    df -h
    #返回值说明
    Filesystem   指定文件系统的名称
    Size         总内存
    Used         已用内存
    Avail        可用内存
    Use%         内存使用率
    Mounted on   指定的文件系统的挂载点,即目录


编写磁盘内存监控的脚本文件 disk-usage-alert.sh:
    #!/bin/bash
    # 获取服务器Filesystem 为 /dev/sda1 (即 / 目录)的内存使用率
    used=$(df -Ph | grep '/dev/sda1' | awk {'print $5'})
    # 磁盘使用率告警阀值
    max=65%
    if [ ${used%?} -ge ${max%?} ]; then
    echo "$1 上磁盘内存剩余 : $cpuUsage %,使用率已经超过 $max %, 时间: $(date) ,请及时处理" | mail -s "$1 磁盘内存使用告警!"  xxx@qqq.com
    fi

脚本启动命令:

    # 用bash 而不是sh命令启动;ip 为监控服务器ip
    bash  disk-usage-alert.sh ip

三、定时任务执行shell脚本

添加定时任务,以下两种方式均可
    # 1.修改 crontab 文件
    vi /etc/crontab 
    # 2.crontab命令添加  
    crontab -e

定时任务 :
    # */30   * * * * 每隔30分钟执行一次定时任务
    # /opt/disk-monitor/disk-usage-alert.sh shell脚本路径
    # 192.168.1.1 监控服务器ip
    */30   * * * * root    bash /opt/disk-monitor/disk-usage-alert.sh 192.168.1.1

四、发送邮件mail的python脚本:mail.py

#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from  subprocess import *

def sendqqmail(username,password,mailfrom,mailto,subject,content):
    # 邮箱的服务地址
    gserver = 'smtp.exmail.qq.com'
    gport = 465
    try:
        # 发送邮件内容
        msg = MIMEText(content ,'plain', 'utf-8')
        # 发件人
        msg['from'] = mailfrom
        # 收件人
        msg['to'] = mailto
        msg['Reply-To'] = mailfrom
        msg['Subject'] = subject
        msg['Accept-Language']='zh-CN'
        msg['Accept-Charset']='ISO-8859-1,utf-8'
        smtp = smtplib.SMTP_SSL(gserver, gport)
        smtp.set_debuglevel(0)
        smtp.login(username,password)
        smtp.sendmail(mailfrom, mailto.split(','), msg.as_string())
        smtp.close()
    except Exception,err:
        print "Send mail failed. Error: %s" % err
def main():
    to=sys.argv[1]
    subject=sys.argv[2]
    content=sys.argv[3]
    print ('content:'+content)
    #定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码
    sendqqmail('发件人邮箱账号','发件人邮箱密码','发件人邮箱账号',to,subject,content)
if __name__ == "__main__":
    main()
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容