perl ping检测功能脚本代码_perl

我的第一个用于生产环境的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 $@;
        }
}

时间: 2024-11-23 02:16:52

perl ping检测功能脚本代码_perl的相关文章

一个ping检测告警函数代码_linux shell

复制代码 代码如下: #!/bin/bash ping_monitor()    {    host_=(203 204 205 207 208 209 210 212 213 214 215 216 217 218 219 220 221)    ping_count=3    called=(13000000001 13000000002 13000000003)    calling=13000000000    callop=1310000000    #main------------

Perl操作系统环境变量的脚本代码_perl

如何用Perl脚本操作系统环境变量呢? 想必很多朋友马上就会想到Perl中提供的$ENV这个特殊的哈希变量,对,在$ENV中完全可以获取到一些系统变量.怎么获取呢?比如想要知道Path这个系统环境变量的内容,我们可以通过$ENV{'Path'} 来获取.如果想设置Path这个环境变量呢,哈,使用$ENV{'Path'}='C:\Windows\System32'来设置.想获取所有的环境变量列表也很简单,哈希遍历不就可以了~ 其实,本文中真正想问的是,你在通过上述方法设置了一个环境变量后,右击"我

perl实现blog备份的脚本代码_perl

之前总不重视自己的博客,上回一丢才心疼,现在重视起来,决定定期备份sql.写个小脚本如下: 复制代码 代码如下: #!/usr/bin/perluse warnings;use strict;use MySQL::Backup;use Mail::Sender;open my $tmp_sql, '>', "backup.sql";my $mb = new MySQL::Backup('dbname', 'localhost', 'dbuser', 'dbpasswd', {'U

perl 指定长度并生成一个随机的DNA序列的脚本代码_perl

复制代码 代码如下: #!/bin/perl use strict;  use warnings; #进行定义  my @dna;  my $dna_length;  my $newbase;  my $i=0;  print "please input the DNA length\n";  chomp($dna_length=<>);  while($i<$dna_length)  {    #从四个碱基中随机选取一个    my(@nucleotides)=qw

perl的logwrapper使用实例代码_perl

这里为大家举二个小例子,供朋友们学习参考. 对任何的函数记录函数运行的时间. 复制代码 代码如下: #!/usr/bin/perluse warnings;use strict;no strict "refs";sub testLogToStd{print "Test stdout : \n";open LOG,"> 2.txt";select LOG;print "just a test\n";#recover STD

简单的移动设备检测PHP脚本代码

复制代码 代码如下: <?php class Mobi { function __isMobile() { $useragent=$_SERVER['HTTP_USER_AGENT']; if(preg_match('/androidavantgoblackberryblazercompalelainefennechiptopiemobileip(honeod)iriskindlelge maemomidpmmpopera m(obin)ipalm( os)?phonep(ixire)\/plu

简单的移动设备检测PHP脚本代码_php技巧

复制代码 代码如下: <?php class Mobi { function __isMobile() { $useragent=$_SERVER['HTTP_USER_AGENT']; if(preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)

Perl使用chdir的实例代码_perl

复制代码 代码如下: use strict;use warnings; # Print all files in a directorysub print_files {    my $dir = 'd:/code';    opendir DIR, $dir or die $!;    my @files = readdir DIR;    chdir $dir; # Use chdir or -f will not work, since -f need absolutely path   

有检测功能的表单递交脚本

提示:您可以先修改部分代码再运行 有检测功能的表单递交脚本    当你按下发送按钮发送这个表单时,脚本程序会对你是否正确填写进行检测,这是现在比较流行的一种表单递交方式. 有内容检测功能的表单递交 姓名: 电子信箱: 主页地址: (必须以 http://开头) 你的建议/你要说的话: 提示:您可以先修改部分代码再运行