博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nagios使用gmail发送邮件 取mysql数据库的字段并邮件通知
阅读量:6336 次
发布时间:2019-06-22

本文共 4936 字,大约阅读时间需要 16 分钟。

sendEmail
使用tls
发送邮件
  
开始使用nagios
时对于perl
不太了解,在搜索到sendEmail
后,这款工具使用相同的简单
./sendEmail -f 
发送邮件地址 -t 
接收邮件地址 -s 
发送邮件的SMTP
服务地址 -u 
标题  -xu 
用户名 -xp 
用户密码 m 
发送内容
;现在开始学习使用perl
相关知识了,了解相关perl
模块安装后开始着手使用gmail
免费邮发送邮件,因为gmail
免费邮都是使用ssl
加密的,发送时需带-o tls=yes 
选项都知道是是使用ssl
了就选择yes
,
其它免费邮如tom,126
的好像不行
./sendEmail -f mlnagios@gmail.com -t qwujhq@126.com -u "this is title" -m "this is my first to mail you "  -s smtp.gmail.com -xu mlnagios -xp 34 -o tls=yes
如果在此系统你未安装过perl
模块,会报
Jul 17 01:25:35 localhost sendEmail[20965]: ERROR => No TLS support!  SendEmail can't load required libraries. (try installing Net::SSLeay and IO::Socket::SSL)
这个错误,下面来动手安装下perl
相关模块吧,我这里讲是利用cpan
下载相关模块然后把模块放到相关perl
路径下安装,当然你也可以在第一次使用cpan
时设定cpan
的路径,我这人比较懒,一路回车过去了,因为我这里只是想要这两个包传到别的地方去安装。
[root@localhost Net-SSLeay-1.35]# perl -MCPAN -e shell
使用这个命令进入cpan
进入后使用h
查看帮助
cpan> h
 
Display Information
 command  argument          description
 a,b,d,m  WORD or /REGEXP/  about authors, bundles, distributions, modules
 i        WORD or /REGEXP/  about anything of above
 r        NONE              reinstall recommendations
 ls       AUTHOR            about files in the author's directory
 
Download, Test, Make, Install...
 get                        download
 make                       make (implies get)
 test      MODULES,         make test (implies make)
 install   DISTS, BUNDLES   make install (implies test)
 clean                      make clean
 look                       open subshell in these dists' directories
 readme                     display these dists' README files
 
Other
 h,?           display this menu       ! perl-code   eval a perl command
 o conf [opt]  set and query options   q             quit the cpan shell
 reload cpan   load CPAN.pm again      reload index  load newer indices
 autobundle    Snapshot                force cmd     unconditionally do cmd
 
使用get
下载相关模块
cpan> get  Net::SSLeay
cpan> get IO::Socket::SSL
下载完成后会提示你下载在哪个目录下
我这个是下好了再次使用下载命令时会提示你已经在下载目录下有了
cpan> get IO::Socket::SSL
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Tue, 28 Jul 2009 00:27:00 GMT
Running get for module IO::Socket::SSL
CPAN: Digest::MD5 loaded ok
Checksum for /root/.cpan/sources/authors/id/S/SU/SULLR/IO-Socket-SSL-1.27.tar.gz ok
进入相关目录查看
[root@localhost sendEmail-v1.55]# cd /root/.cpan/sources/authors/id/S/SU/SULLR/
[root@localhost SULLR]# ls
CHECKSUMS  IO-Socket-SSL-1.27.tar.gz
好了,两包都下好了,把相关传你想在哪台机器上实现发mail
功能
找到perl
安装模块的路径
我这里是/usr/lib/perl5/5.8.5/
这些模块的安装就比较简单了,使用more
查看安装帮助
[root@localhost Net-SSLeay-1.35]# more README
这是Net::SSLeay
的后面perldoc
应该可以明白吧
         ./Makefile.PL -t     # builds and tests it
         make install         # You probably have to su to root to do this
         perldoc Net::SSLeay  # optional, but highly recommended
         perldoc Net::SSLeay::Handle
 
这个安装IO::Socket::SSL
 
         perl Makefile.PL
         make
         make test
         make install
 
[root@localhost Net-SSLeay-1.35]# ./Makefile.PL -t
Cannot determine perl version info from lib/Net/SSLeay.pm
Cannot determine license info from lib/Net/SSLeay.pm
*** Found OpenSSL-0.9.7a installed in /usr
*** Be sure to use the same compiler and options to compile your OpenSSL, perl,
    and Net::SSLeay. Mixing and matching compilers is not supported.
Do you want to run external tests?
These tests *will* *fail* if you do not have network connectivity. [n] y
Writing Makefile for Net::SSLeay
 [root@localhost Net-SSLeay-1.35]# make install
进入放置sendEmail
程序的目录
[root@localhost sendEmail-v1.55]# pwd
/root/sendEmail-v1.55
[root@localhost sendEmail-v1.55]# ./sendEmail -f mlnagios@gmail.com -t qwujhq@126.com -u "this is title" -m "this is my first to mail you "  -s smtp.gmail.com -xu mlnagios -xp 1234 -o tls=yes
Jul 21 13:17:04 localhost sendEmail[10764]: Email was sent successfully!
好了邮件发送成功
# 'notify-host-by-email' command definition
define command{
        command_name    notify-host-by-email
        command_line     /usr/local/bin/sendEmail/sendEmail -f mlnagios@gmail.com -t $CONTACTEMAIL$  -s smtp.gmail.com -xu mlnagios -xp 34 -o tls=yes -u "****** Nagios ******" -m " ** $NOTIFICATIONTYPE$ Service Alert: $HOSTNAME$/$HOSTADDRESS$  is $HOSTSTATE$ at \n\nDate/Time: $LONGDATETIME$ Additional Info:$HOSTOUTPUT$"
        }
 
# 'notify-service-by-email' command definition
define command{
        command_name    notify-service-by-email
        command_line     /usr/local/bin/sendEmail/sendEmail -f mlnagios@gmail.com -t $CONTACTEMAIL$  -s smtp.gmail.com -xu mlnagios -xp 34 -o tls=yes  -u " ****** Nagios ****** " -m " ** $NOTIFICATIONTYPE$ Service Alert: $HOSTNAME$/$HOSTADDRESS$ $SERVICEDESC$ is $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$ Additional Info:$SERVICEOUTPUT$ $CONTACTPAGER$"
        }
 
数据库相关字段通知脚本,如下取得数据库相关脚本,然后发邮件通知相关联系人
#!/bin/bash
#get the database field
field=`mysql -uroot --password=xxxxxx <<QUERY_SQL
         select last from qeedoo.tbl_sch_account where email="test1";
         QUIT
         QUERY_SQL`
#define CONTACTEMAIL
for mail in "jairus@xxx.com qwujhq@xx.com heaventxxx@xxx.com"
do
/usr/local/bin/sendEmail/sendEmail -f mlnagios@gmail.com -t $mail  -s smtp.gmail.com -xu mlnagios -xp xxx -o tls=yes  -u " ****** THE NOTICE FOR MYSQL  ****** " -m "$field"
Done
最后自己定义下crontab 
定时查询一下,如果需要更智能些自己调整,呵呵,sendEmail可以从这里下载http://caspian.dotconf.net/menu/Software/SendEmail/
本文转自 qwjhq 51CTO博客,原文链接:http://blog.51cto.com/bingdian/184372

转载地址:http://mfooa.baihongyu.com/

你可能感兴趣的文章
子域名信息收集攻略
查看>>
[Android]开发数独游戏思路分析过程
查看>>
SpreadJS 类Excel表格控件 - V12 新特性详解
查看>>
理解并取证:IPv6与IPv4在报文结构上的区别
查看>>
EOS主网上线只是开始,如何运营决定未来
查看>>
不用Visual Studio,5分钟轻松实现一张报表
查看>>
(译)如何使用cocos2d和box2d来制作一个Breakout游戏:第一部分
查看>>
计算机图形学(一) 图形系统综述
查看>>
持续集成(CI)- 几种测试的区别(摘录)
查看>>
多用户虚拟Web3D环境Deep MatrixIP9 1.04发布
查看>>
求高手,求解释
查看>>
[MSSQL]NTILE另类分页有么有?!
查看>>
winform datagridview 通过弹出小窗口来隐藏列 和冻结窗口
查看>>
Jquery闪烁提示特效
查看>>
最佳6款用于移动网站开发的 jQuery 图片滑块插件
查看>>
C++ String
查看>>
获取系统托盘图标的坐标及文本
查看>>
log4j Test
查看>>
HDU 1255 覆盖的面积(矩形面积交)
查看>>
SQL数据库无法附加,提示 MDF" 已压缩,但未驻留在只读数据库或文件组中。必须将此文件解压缩。...
查看>>