|
我的第一个用于生产环境的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/
192.168.1.2
192.168.2.3
192.168.5.3
/;
foreach my $re (@list){
my $p = `ping $re -c 3`; icmp请求三次
if($p=~/100% packet loss/){
my $email = Email::Simple->create(
header => [
From => 'monitor@hongshu.com',
To => 'monitor@hs.com',
Subject => "$re 100% packet loss",
],
body => "$re the server is down!\n",
);
my $sender = Email::Send->new(
{ mailer => 'Gmail',
mailer_args => [
username => 'monitor@hongshu.com',
password => 'xxx',
]
}
);
eval { $sender->send($email) };
die "Error sending email: $@" if $@;
}
}
|
|
所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298
本贴地址:https://www.yunweiku.com/thread-559223-1-1.html
上篇帖子:
通过perl获取系统使用的IP和网口
下篇帖子:
Perl Learning - 5 (sort(), reverse(), context, list )
|