【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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/570cd0e829f9cf866d5b21ef3eb8c126.html