老男孩教育每日一题-2017-04-17:使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警

简介:

老男孩教育每日一题-2017-04-17:

使用Shell或Python写一个脚本,CPU使用率超过80%或硬盘超过85%邮件报警。

  • Shell

知识点1

CPU监控:top -n 1 查看1次就退出

1
Cpu(s): 0.3%us,  0.3%sy,  0.0%ni, 99.3% id ,  0.0%wa, 0.0%hi,  0.0%si,  0.0%st

 99.3%id  是未使用的CPU,剩余的都是使用的。

获取使用率

1
top  -n 1| awk  -F  '[, %]+'  'NR==3 {print 100-$11}'

知识点2

磁盘监控先监控/

1
df  -h| awk  -F  '[ %]+'   '/\/$/{print $5}'

知识点3:使用bc进行含有小数的大小判断

1
2
3
4
5
6
[root@oldboy ~] # echo "0.1>0.01"|bc
1
[root@oldboy ~] # echo "0.1>0.2"|bc
0
[root@oldboy ~] # echo "5.6>10.3"|bc
0

具体步骤:

1. 配置/etc/mail.rc支持发邮件

1
http: //oldboy .blog.51cto.com /2561410/1706911

2. 脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@oldboy scripts] # cat check.sh
#!/bin/bash
LANG=en_US.UTF-8
cpuUsed=` top  -n 1| awk  -F  '[, %]+'  'NR==3 {print100-$11}' `
diskUsed=$( df  -h| awk  -F  '[ %]+'   '/\/$/{print $5}' )
logFile= /tmp/jiankong .log
  
function  Sendmail(){
     mail -s "监控报警"  user@oldboyedu.com <$logFile
}
  
function  check(){
     if  [ ` echo "$cpuUsed>80" | bc ` - eq  1 -o $diskUsed - ge  85 ]; then
        echo "CPU使用率:${cpuUsed}%,磁盘使用率:${diskUsed}%" >$logFile
       Sendmail
     fi
}
  
function  main(){
     check
}
 
main

 

3. 加入定时任务,每5分钟执行一次。

 

                           

wKioL1j0iluQc7qwAADXQEDkpAs974.png


  • Python3

声明:已在python3测试,需要安装pip3 install psutil

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[root@linux-node1 ~] # cat check.py 
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import  psutil    # python获取系统信息模块,需要额外安装
import  smtplib   # 发送邮件
from email.mime.text  import  MIMEText   # 构造纯文本邮件
from email.utils  import  formataddr  # 格式化邮件地址
 
cpuUsed=psutil.cpu_percent(interval=1)
diskUsed=psutil.disk_usage( '/' ).percent
 
def structural_mail(text, recipient):
     msg = MIMEText(text,  'plain' 'utf-8' )
     msg[ 'From' ] = formataddr([ "张耀" 'user@oldboyedu.com' ])   # 发件人
     msg[ 'To' ] = formataddr([recipient, recipient])   # recipient收件人
     msg[ 'Subject' ] =  "监控报警"   # 主题
     return  msg
 
 
def send_mail(text, recipient):
     from_addr =  '发送邮箱账号'
     password =  '密码'
     smtp_server =  'smtp.exmail.qq.com'
     smtp_port = 25
     to_addr = []   # 可以一次发给多个人,因此传入一个列表
     to_addr.append(recipient)
 
     msg = structural_mail(text, recipient)
 
     server = smtplib.SMTP(smtp_server, smtp_port)
     server.login(from_addr, password) 
     server.sendmail(from_addr, to_addr, msg.as_string())
 
 
def check():
     if  cpuUsed <= 80 or diskUsed >= 85:
        send_mail( 'CPU使用率:{}%,磁盘使用率:{}%' . format (cpuUsed, diskUsed), '12345678@qq.com' )
 
if  __name__ ==  '__main__' :
     check()

 

wKiom1j0ilzSL2A1AACHewlNqLM092.png


今天是老男孩教育每日一题陪伴大家的第29天。

往期题目索引

http://lidao.blog.51cto.com/3388056/1914205


本文转自 李导 51CTO博客,原文链接:http://blog.51cto.com/lidao/1916530


相关文章
|
7月前
|
JSON 算法 API
深度分析小红书城API接口,用Python脚本实现
小红书作为以UGC内容为核心的生活方式平台,其非官方API主要通过移动端抓包解析获得,涵盖内容推荐、搜索、笔记详情、用户信息和互动操作等功能。本文分析了其接口体系、认证机制及请求规范,并提供基于Python的调用框架,涉及签名生成、登录态管理与数据解析。需注意非官方接口存在稳定性与合规风险,使用时应遵守平台协议及法律法规。
|
7月前
|
JSON API 数据安全/隐私保护
【干货满满】分享微店API接口到手价,用python脚本实现
微店作为知名社交电商平台,其开放平台提供商品查询、订单管理等API接口。本文介绍如何通过微店API获取商品到手价(含优惠、券等),涵盖认证机制、Python实现及关键说明。
|
7月前
|
JSON API 数据格式
深度分析大麦网API接口,用Python脚本实现
大麦网为国内领先演出票务平台,提供演唱会、话剧、体育赛事等票务服务。本文基于抓包分析其非官方接口,并提供Python调用方案,涵盖演出列表查询、详情获取及城市列表获取。需注意非官方接口存在稳定性风险,使用时应遵守平台规则,控制请求频率,防范封禁与法律风险。适用于个人学习、演出信息监控等场景。
|
7月前
|
JSON API 开发者
深度分析阿里妈妈API接口,用Python脚本实现
阿里妈妈是阿里巴巴旗下营销平台,提供淘宝联盟、直通车等服务,支持推广位管理、商品查询等API功能。本文详解其API调用方法,重点实现商品推广信息(佣金、优惠券)获取,并提供Python实现方案。
|
7月前
|
JSON API 数据安全/隐私保护
深度分析虾皮城API接口,用Python脚本实现
虾皮开放平台提供丰富的API接口,支持商品管理、订单处理及促销信息查询等功能。本文详解API认证机制与调用方法,基于Python实现商品价格及到手价获取方案,适用于电商数据分析与运营。
|
7月前
|
API 数据安全/隐私保护 开发者
深度分析苏宁API接口,用Python脚本实现
深度分析苏宁API接口,用Python脚本实现
|
7月前
|
前端开发 Shell API
深度分析58同城API接口,用Python脚本实现
58同城为国内知名分类信息平台,涵盖房产、招聘、二手车等多领域。本文基于网页抓包与解析,分享其非官方接口的Python实现方案,分析核心接口特性与反爬应对策略,适用于数据学习与信息聚合。注意:非官方接口存在风险,使用需遵守平台规则。
|
6月前
|
缓存 人工智能 算法
不同业务怎么选服务器?CPU / 内存 / 带宽配置表
本文详解了服务器三大核心配置——CPU、内存、带宽,帮助读者快速理解服务器性能原理。结合不同业务场景,如个人博客、电商、数据库、直播等,提供配置选择建议,并强调合理搭配的重要性,避免资源浪费或瓶颈限制。内容实用,适合初学者和业务选型参考。
981 0
|
6月前
|
存储 消息中间件 缓存
从纳秒到毫秒的“时空之旅”:CPU是如何看待内存与硬盘的?
在数据爆炸的时代,如何高效存储与管理海量数据成为系统设计的核心挑战。本文从计算机存储体系结构出发,解析B+树、LSM树与Kafka日志结构在不同数据库中的应用与优化策略,帮助你深入理解高性能存储背后的原理。
207 0
|
8月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
2729 0

推荐镜像

更多