python插件做nagios发报警邮件二
接上文 python插件做nagios发报警邮件 http://www.nginxs.com/linux/371.html,由于python 传入的参数,python 会自动加 \ ,经过代码测试,代码如下:
nagios $> cat test.py
#!/usr/bin/python
import sys
str = sys.argv[1]
str = repr(str)
print str
nagios $> python test.py “aaaa\nfffff”
‘aaaa\\nfffff’
测试过很多方法,都不行,最后用了最笨的的方法就是读文件!就稍微改动了一下上文脚本
nagios $> cat /usr/local/nagios/libexec/sendmail
#!/usr/bin/python import smtplib import string import sys import getoptdef usage():print """sendmail is a send mail PluginsUsage:sendmail [-h|--help][-t|--to][-s|--subject][-m|--message]Options:--help|-h)print sendmail help.--to|-t)Sets sendmail to email.--subject|-s)Sets the mail subject.--message|-m)Sets the mail bodyExample:./sendmail -t 'eric@nginxs.com' -s 'hello eric' -p /tmp/nagios-mail '"""sys.exit(3)try:options,args = getopt.getopt(sys.argv[1:],"ht:s:p:",["--help","--to=","--subject=","--path="]) except getopt.GetoptError:usage() for name,value in options:if name in ("-h","--help"):usage()if name in ("-t","--to"): # accept message userTO = valueTO = TO.split(",")if name in ("-s","--title"):SUBJECT = valueif name in ("-p","--path"):MESSAGE = value #传入文件路径MESSAGE = open(MESSAGE,'r') #只读模式打开文件MESSAGE = MESSAGE.read() #读取文件内容 #smtp HOST HOST = "smtp.126.com" #smtp port PORT = "25" #FROM mail user USER = 'eric' #FROM mail password PASSWD = '123456' #FROM EMAIL FROM = "yangzi2008@126.com"try:BODY = string.join(("From: %s" % FROM,"To: %s" % TO,"Subject: %s" % SUBJECT,"",MESSAGE),"\r\n")smtp = smtplib.SMTP()smtp.connect(HOST,PORT)smtp.login(USER,PASSWD)smtp.sendmail(FROM,TO,BODY)smtp.quit() except:print "UNKNOWN ERROR"print "please look help"print "./sendmail -h"
注意:
改动了 message 以读文件内容方式传入,放弃了以参数方法传入。
-m 擦数改为 -p参数 -p 后面 跟 文件的 绝对路径。
修改 nagios 的 commands.cfg
nagios $> vim /usr/local/nagios/etc/objects/commands.cfg define command{command_name notify-host-by-emailcommand_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" > /tmp/nagios-mail | $USER1$/sendmail -t $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -p /tmp/nagios-mail}define command{command_name notify-service-by-emailcommand_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" > /tmp/nagios-mail| $USER1$/sendmail -t $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -p /tmp/nagios-mail}
本文转自Deidara 51CTO博客,原文链接:http://blog.51cto.com/deidara/461011,如需转载请自行联系原作者
python插件做nagios发报警邮件二相关推荐
- Centos7或ubuntu18.04配置公共邮箱或个人邮箱发报警邮件
系统:Ubuntu18.04配置方法 使用的软件:heirloom-mailx 亲测可用,这篇文章说的是配置邮箱,并发送邮件,具体报警邮件及脚本后续有空写 1.配置软件源 ubuntu18.04上无法 ...
- 七夕快到了,教大家用Python来做一个有趣的表白二维码!
二维码我们日常天天见到的,这玩意居然能用来表白?哎,在程序员的世界里,没有什么是不可能的, 今天教大家自己做一个,让女朋友去扫描一下,嘿嘿,那么问题来了,没有女朋友的兄弟怎么办..... 赶紧找一个 ...
- python实习做什么工作-大一/大二学生Python实习的困惑?
题主是一名非名校的CS本科学生,现在遇到了一些困惑,想请教一下热心的segmentfault网友.因为不是985/211名校,现在题主所在的这所学校我感觉学风非常不好,第一是整体水平太低,一学期结束了 ...
- nagios 使用MSN 发报警消息
- - 公司管理的服务器太多了!在年前部属了cacti,但cacti只能做事后分析的工作,而实时报警功能不强,在部属cacti前就在监控PC上安装了nagios,只是一直没有时间详细研究!目前在我 ...
- Python-群发推广邮件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.Python-群发推广邮件 二.代码 总结 解释 一.Python-群发推广邮件 通过切换多个发件邮箱账号,每个发件邮箱 ...
- 动手下载网易课程视频 -- Eclipse通过pip安装python插件
1. 通过pip安装python插件 步骤一: 打开Eclipse 步骤二: Window -> Preferences -> PyDev -> Interpreters -> ...
- linux检测磁盘 报警,linux服务器磁盘监控脚本分享(含报警邮件)
在日常的运维工作中,我们经常会对服务器的磁盘使用情况进行巡检,以防止磁盘爆满导致的业务故障. 如果能编写一个合理完善的监控脚本,当磁盘使用率达到我们设置的阀值时,就自动发送报警邮件,以便我们及时获悉到 ...
- 服务器磁盘监控脚本分享(含报警邮件)
在日常的运维工作中,我们经常会对服务器的磁盘使用情况进行巡检,以防止磁盘爆满导致的业务故障. 如果能编写一个合理完善的监控脚本,当磁盘使用率达到我们设置的阀值时,就自动发送报警邮件,以便我们及时获悉到 ...
- python发邮件11002_【python发送zabbix报警邮件,SSL版本】mailman.py
[python发送zabbix报警邮件,SSL版本]mailman.py#!/usr/local/bin/python3 # # via @ 20150210 # SSL only ''' 用法: ...
最新文章
- 神经网络与机器学习 笔记—改善反向传播的性能试探法
- ArcGIS 复制要素
- php根据IP获取所有地,腾讯IP API
- Python继承外另一种重用方式——组合
- 安卓代码迁移:Make.exe: *** [libs/armabi-v7a/gdbserver] Error 1
- SQL Server 使用OPENROWSET访问ORACLE遇到的各种坑总结
- [导入]关于OllyDbg 2.0的消息..
- 福利 | 2018 OpenInfra Days China限量版免费票任性放出
- 100个犯人和一个亮灯泡_每个人都在一个开放的组织中更换灯泡
- dreawever与php做网页,教程方法;Drea、mweaver CS5更改代码颜色方法电脑技巧-琪琪词资源网...
- 贺利坚老师汇编课程47笔记:jmp指令无条件转移只修改IP
- 转发和重定向的区别[来源于网络]
- C中常量数组不能修改
- 推荐一个springboot和springcloud系列的博客专家--方志朋
- Unity中物体移动脚本
- ALTER TABLE 语句
- 在ceph 的admin-node安装calamari详细步骤
- Vue学习日志之语法糖
- NLP入门(八)使用CRF++实现命名实体识别(NER)
- 如何优雅的写 Controller 层代码?找对姿势!