【Perl脚本】找出日志中的错误信息并发送邮件
脚本功能:
脚本使用Perl来实现,读取/var/log/messages(也可以是其他日志文件)日志文件,从里面找出error或者warn的行,然后发送邮件。
第一次读取的时候,会记录读取的位置,下次读取的时候会从上次读取的位置的开始读取,如果没有发现error或warn行,则不发邮件
相关附件下载地址:
具体下载目录在 /2012年资料/11月/29日/【Perl脚本】找出日志中的错误信息并发送邮件
脚本使用说明:
1.需要的Perl模块
Net::SMTP //perl自带,不用安装
Socket //perl自带,不用安装
Sys::Hostname //perl自带,不用安装
Authen::SASL (用使来验证邮件用户名和密码) //需要安装
使用root身份用如下命令来安装Authen::SASL模块:
- root@server ~]# cpan Authen::SASL
- If you do not want to enter a dialog now, you can answer 'no' to this
- question and I'll try to autoconfigure. (Note: you can revisit this
- dialog anytime later by typing 'o conf init' at the cpan prompt.)
- Are you ready for manual configuration? [yes] no //如果有该步骤的话,选择no,自动配置
- 中间省略。。。
- Checking if your kit is complete...
- Looks good
- Warning: prerequisite Digest::HMAC_MD5 0 not found.
- Warning: prerequisite ExtUtils::MakeMaker 6.42 not found. We have 6.30.
- Writing Makefile for Authen::SASL
- ---- Unsatisfied dependencies detected during [G/GB/GBARR/Authen-SASL-2.15.tar.gz] -----
- Digest::HMAC_MD5
- ExtUtils::MakeMaker
- Shall I follow them and prepend them to the queue
- of modules we are processing right now? [yes] yes
- Running make install
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL.pod
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl.pod
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/EXTERNAL.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/CRAM_MD5.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl/DIGEST_MD5.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl/PLAIN.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl/ANONYMOUS.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl/LOGIN.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl/GSSAPI.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl/EXTERNAL.pm
- Installing /usr/lib/perl5/site_perl/5.8.8/Authen/SASL/Perl/CRAM_MD5.pm
- Installing /usr/share/man/man3/Authen::SASL::Perl.3pm
- Installing /usr/share/man/man3/Authen::SASL::Perl::LOGIN.3pm
- Installing /usr/share/man/man3/Authen::SASL::Perl::CRAM_MD5.3pm
- Installing /usr/share/man/man3/Authen::SASL::Perl::ANONYMOUS.3pm
- Installing /usr/share/man/man3/Authen::SASL.3pm
- Installing /usr/share/man/man3/Authen::SASL::Perl::EXTERNAL.3pm
- Installing /usr/share/man/man3/Authen::SASL::Perl::GSSAPI.3pm
- Installing /usr/share/man/man3/Authen::SASL::Perl::PLAIN.3pm
- Installing /usr/share/man/man3/Authen::SASL::Perl::DIGEST_MD5.3pm
- Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
- /usr/bin/make install -- OK 看到这里就表示安装完成。
测试模块是否安装:
[root@server1 ~]# perl -e "use Authen::SASL"
[root@server1 ~]# //什么也不显示表明模块已经正确安装了。
[root@server1 ~]# perl -e "use Net::SMTP"
[root@server1 ~]#
[root@server1 ~]# perl -e "use Socket"
[root@server1 ~]#
[root@server1 ~]# perl -e "use Sys::Hostname"
[root@server1 ~]#
2.需要ROOT身份运行该脚本,如果读取的是 /var/log/messages这个日志文件 3.可以设置为计划任务,自定义运行时间,如:每30分钟运行一次 4.服务器需联网才能发送邮件 5.如果有防火墙请放开25端口:
- iptables -A INPUT -p tcp --sport 25 -j ACCEPT
- iptables -A OUPUT -p tcp --dport 25 -j ACCEPT
6.一些测试数据 测试数据请下载附件 测试的时候第一次测试会创建/var/log/last_messages.linenumber文件, 第二次测试的时候 需要把该文件清空,或者在/var/log/messages增加一些错误的行,这样才可以测试出效果 7.有什么不对的地方请留言或者发送邮件([email protected]) 8.发送邮件效果如下:
相关推荐
pigsmall 2020-11-19
graseed 2020-10-28
大数据杂谈 2020-09-26
SXIAOYI 2020-09-16
jinhao 2020-09-07
ChinaWin 2020-08-13
mohanzb 2020-08-01
王国平 2020-06-20
yoohsummer 2020-06-01
kangtingting0 2020-05-20
MichelinMessi 2020-02-19
impress 2020-02-20
nicepainkiller 2020-01-25
hfszy0 2013-05-15
lizhenmxcz 2013-05-12
gxyblue 2013-05-11
chenshuixian 2013-06-01
羽化大刀Chrome 2013-05-31
tichangde 2020-01-17