本站已运行

攻城狮论坛

作者: 合肥清默
查看: 3966|回复: 28

主题标签Tag

more +今日重磅推荐Recommend No.1

所有IT类厂商认证考试题库下载所有IT类厂商认证考试题库下载

more +随机图赏Gallery

【新盟教育】2023最新华为HCIA全套视频合集【网工基础全覆盖】---国sir公开课合集【新盟教育】2023最新华为HCIA全套视频合集【网工基础全覆盖】---国sir公开课合集
【新盟教育】网工小白必看的!2023最新版华为认证HCIA Datacom零基础全套实战课【新盟教育】网工小白必看的!2023最新版华为认证HCIA Datacom零基础全套实战课
原创_超融合自动化运维工具cvTools原创_超融合自动化运维工具cvTools
重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)
链接已失效【超过几百G】EVE 国内和国外镜像 全有了 百度群分享链接已失效【超过几百G】EVE 国内和国外镜像 全有了 百度群分享
某linux大佬,积累多年的电子书(约300本)某linux大佬,积累多年的电子书(约300本)
乾颐堂现任明教教主Python完整版乾颐堂现任明教教主Python完整版
乾颐堂 教主技术进化论 2018-2019年 最新31-50期合集视频(各种最新技术杂谈视频)乾颐堂 教主技术进化论 2018-2019年 最新31-50期合集视频(各种最新技术杂谈视频)
Python学习视频 0起点视频 入门到项目实战篇 Python3.5.2视频教程 共847集 能学102天Python学习视频 0起点视频 入门到项目实战篇 Python3.5.2视频教程 共847集 能学102天
约21套Python视频合集 核心基础视频教程(共310G,已压缩)约21套Python视频合集 核心基础视频教程(共310G,已压缩)
最新20180811录制 IT爱好者-清风羽毛 - 网络安全IPSec VPN实验指南视频教程最新20180811录制 IT爱好者-清风羽毛 - 网络安全IPSec VPN实验指南视频教程
最新20180807录制EVE开机自启动虚拟路由器并桥接物理网卡充当思科路由器最新20180807录制EVE开机自启动虚拟路由器并桥接物理网卡充当思科路由器

python脚本用来nagios发送邮件

  [复制链接]
查看: 3966|回复: 28
开通VIP 免金币+免回帖+批量下载+无广告
之前公司nagios发送邮件的脚本是用expect来写的,但是一直有一个弊端就是nagios邮件正文不能换行,只能在一行显示,每次报警看起来都很费劲。一直想换了它,这次用python的脚本就解决的这个换行的问题。
  废话少说,上脚本:
    9 ^2 H( Q1 @+ D9 Z" T5 ^6 b* y  l
    #!/usr/bin/python import smtplib import string import sys import getopt def usage():    print """sendmail is a send mail Plugins    Usage:    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 body     Example:            only one to email  user           ./sendmail -t 'eric@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!            many to email  user           ./sendmail -t 'eric@nginxs.com,zhangsan@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!"""    sys.exit(3) try:    options,args = getopt.getopt(sys.argv[1:],"ht:s:m:",["help","to=","subject=","message="]) except getopt.GetoptError:    usage() for name,value in options:     if name in ("-h","--help"):        usage()     if name in ("-t","--to"): # accept message user        TO = value        TOTO = TO.split(",")     if name in ("-s","--title"):        SUBJECT = value     if name in ("-m","--message"):        MESSAGE = value        MESSAGE = MESSAGE.split('\\n')        MESSAGE = '\n'.join(MESSAGE) #smtp HOST HOST = "smtp.126.com"                #改为你的邮局SMTP 主机地址 #smtp port PORT = "25"                          #改为你的邮局的SMTP 端口 #FROM mail user USER = 'eric'                        # 改为你的邮箱用户名 #FROM mail password PASSWD = '123456'                    # 改为你的邮箱密码 #FROM EMAIL FROM = "test@163.com"                # 改为你的邮箱 email 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" " U! r7 I; u& P' o9 [' A
使用方法:
只给一个用户发:
nagios $> ./sendmail -t 'test@163.com' -s 'hello' -m 'hello,this is sendmail test!
给多个用户发:
./sendmail -t ' test@163.com,test02@163.com' -s 'hello' -m 'hello,this is sendmail test!
应用到nagios上,用来报警:
[root@master ~]# vim /etc/nagios/objects/commands.cfg
define command{
        command_name    notify-host-by-email
        command_line    $USER1$/sendmail -t $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **"  -m  "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"
        }
6 C! [& [. W5 E% Y0 Q. _
define command{
        command_name    notify-service-by-email
        command_line    $USER1$/sendmail -t  $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **"  -m  "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$"
        }
[root@master ~]# /etc/init.d/nagios reload
这样就可以了。
CCNA考试 官方正规报名 仅需1500元
回复 论坛版权

使用道具 举报

drpalm [Lv8 技术精悍] 发表于 2013-10-17 20:19:24 | 显示全部楼层
没看完~~~~~~ 先顶,好同志
回复 支持 反对

使用道具 举报

hulin70 [Lv8 技术精悍] 发表于 2013-10-17 20:26:13 | 显示全部楼层
真是 收益 匪浅
回复 支持 反对

使用道具 举报

hongnanlin [Lv8 技术精悍] 发表于 2013-10-18 21:15:31 | 显示全部楼层
我是个凑数的。。。
回复 支持 反对

使用道具 举报

gthj [Lv8 技术精悍] 发表于 2013-10-18 22:49:44 | 显示全部楼层
我抢、我抢、我抢沙发~
回复 支持 反对

使用道具 举报

红色14# [Lv8 技术精悍] 发表于 2013-10-21 18:16:13 | 显示全部楼层
这是什么东东啊
回复 支持 反对

使用道具 举报

legned [VIP@钻石] 发表于 2013-10-24 16:02:52 | 显示全部楼层
不知该说些什么。。。。。。就是谢谢
回复 支持 反对

使用道具 举报

playboy007 [VIP@钻石] 发表于 2013-12-6 14:58:40 | 显示全部楼层
有竞争才有进步嘛
回复 支持 反对

使用道具 举报

cxvzwa [Lv8 技术精悍] 发表于 2013-12-7 17:36:17 | 显示全部楼层
过来看看的,感谢攻城狮论坛
回复 支持 反对

使用道具 举报

seekus [Lv8 技术精悍] 发表于 2013-12-7 22:46:38 | 显示全部楼层
过来看看的,感谢攻城狮论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图浏览|手机版|网站地图|攻城狮论坛

GMT+8, 2026-3-10 01:16 , Processed in 0.109017 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

Designed by ARTERY.cn