perl ping检测脚本
我的第一个用于生产环境的perl脚本,虽然不是很优秀,但也迈出了扎实的一步 :)
领导有任务,给一批IP列表,ping每一台机器,如果没有响应就发邮件通知,通知的邮件需要分开,不能通知一个列表,得一封一封的通知.
用到email::send模块,因为需要用到Gmail
- #!/usr/bin/perl
- use warnings;
- use strict;
- use Email::Send;
- use Email::Send::Gmail;
- use Email::Simple::Creator;
- my @list = qw/
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
- /;
- foreach my $re (@list){
- my $p = `ping $re -c 3`;
- if($p=~/100% packet loss/){
- my $email = Email::Simple->create(
- header => [
- From => 'monitor@a.com',
- To => 'monitor@b.com',
- Subject => "$re 100% packet loss",
- ],
- body => "$re the server is down!\n",
- );
- my $sender = Email::Send->new(
- { mailer => 'Gmail',
- mailer_args => [
- username => 'monitor@a.com',
- password => 'xxx',
- ]
- }
- );
- eval { $sender->send($email) };
- die "Error sending email: $@" if $@;
- }
- }
你好,请问如果禁ping的情况下这个就没用了吧?
你好,禁止ping就没用了这个脚本就没用了。
为嘛 不用nagios来监控呢
你好,有nagios的,这个没空学着玩的。。。见笑了
吼… 支持一下