# -*- coding:utf-8 -*-

import smtplib
#import os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
#from email import encoders

user = 'ccccfz@163.com'
pwd = 'fz.19921218'
to = ['1980884174@qq.com']
msg = MIMEMultipart()
msg['Subject'] = 'Redis内存超标警报'
content1 = MIMEText('服务器内存已超过预设最大内存', 'plain', 'utf-8')
msg.attach(content1)  

#-----------------------------------------------------------
s = smtplib.SMTP('smtp.163.com')
s.login(user, pwd)
s.sendmail(user, to, msg.as_string())
print('发送邮件成功')
s.close()  
#! /bin/bash
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

export $PATH

port=

mem_target=0.005

maxmemory=$(redis-cli -p $port config get maxmemory | awk 'NR==2 {print $1}')

used_memory=$(redis-cli -p $port info memory | grep used_memory: | cut -d: -f2 )

mem_ratio=$(awk 'BEGIN {printf("%.4f",'$used_memory'/'$maxmemory')}')

 ] 

then 

    /root/Documents/Python-/python /root/Downloads/send_mail.py

fi

在Redis服务器上进行脚本监控。如果监控超过阈值,则请求JAVA程序代发邮件。

Shell脚本确实写着费劲
它还居然没有浮点运算
有两个方式可以实现浮点运算。
1.$(awk 'BEGIN {printf("%.2f",'$used_memory'/'$maxmemory')}')
2.$(echo "scale=2;$mem_ratio>$mem_target" | bc)

另外需要注意的是,top命令的结果默认是乱码,不能使用awk运算

使用top -b 参数就可以解决这个问题了

最新文章

  1. 一个苹果证书如何多次使用——导出p12文件
  2. what just I know
  3. 怎样写 OpenStack Neutron 的 Extension (四)
  4. 下载服务器端的图片和下载excel
  5. MVC中Model用法
  6. [访问系统] C#计算机信息类ComputerInfo (转载)
  7. inno setup 多语言安装
  8. 了解ASP.NET5 Web应用程序结构
  9. <c:foreach> 标签怎么获取循环次数?
  10. Swift中自定义打印方法
  11. codeforces 558 E A Simple Task
  12. MySQL 笔记整理(2) --日志系统,一条SQL查询语句如何执行
  13. Swift - use Array
  14. 图解Windows 10下Visual Studio Code的下载和安装
  15. QTP入门——玩玩小飞机
  16. BZOJ5063旅游——非旋转treap
  17. Linux下的Mysql数据库备份+还原
  18. 跟随我在oracle学习php(1)
  19. EasyUI Form提交后json数据IE上需要下载(转)
  20. Bootstrap之javascript组件

热门文章

  1. 老男孩python自动化运维作业1
  2. 【openresty】获取post请求数据FormInputNginxModule模块
  3. Word论文写作如何实现公式居中、编号右对齐
  4. CSS布局(二)
  5. 初识nginx
  6. eclipse中安装adt插件
  7. WinForm开发之取送货管理1
  8. .NET entityframework for mysql ,datetime字段存储值时有误差
  9. python day2 列表的常用操作方法
  10. ZOJ3774_Power of Fibonacci