perl ping检测功能脚本代码
发布时间:2023-09-27 12:41:47
标签: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 $@;
}
}


猜你喜欢
- 中间件是什么?中间件是类似flask函数中钩子函数的东西。可以在请求视图函数前,或者视图函数响应后处理某些事情。中间件对全部视图都有效!中间
- 你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习:第一种可能是你还没有理解CSS处理页面的原理。在你考虑
- lambda 语法lambda 函数的语法只包含一个语句,表现形式如下:lambda [arg1 [,arg2,.....argn]]:ex
- 本文实例讲述了python根据给定文件返回文件名和扩展名的方法。分享给大家供大家参考。具体分析如下:这段代码可以根据文件的完整路径返回文件名
- 对于使用虚拟主机的站长朋友,我们可能不知道该服务器是否安装了某种我们需要的组件。这时我们可以使用下面的代码来判断。该函数功能:检查是否存在系
- 背景在写代码过程中,如果有频繁重复性的编码操作,或者可以Reuse的各类代码,可以通过Python写一个脚本,自动生成这类代码,就不用每次手
- 前言GraphQL是一种新的API设计语言,它提供了更加灵活、高效的API查询方式。与RESTful API相比,GraphQL可以更好地满
- 1. 自己用python写了一个签到脚本经过测试已经可以成功打卡,于是研究了一下windows定时运行程序2. 创建定时任务2.1 打开“控
- 使用 os.open 打开文件无论是读文件还是写文件,都要先打开文件。说到打开文件,估计首先想到的就是内置函数 open(即 io.open
- title: 利用Django实现一个能与用户交互的初级框架author: Sun-Winddate: September 1, 2021D
- 变量的存储在高级语言中,变量是对内存及其地址的抽象。对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,
- 本文实例讲述了Python基于递归算法求最小公倍数和最大公约数。分享给大家供大家参考,具体如下:# 最小公倍数def lcm(a, b, c
- 目录1.mvc vs mvtmvc:mvt:2.虚拟环境3.安装包4.创建django项目5.创建应用6.模型ORM选项 说明7.后台管理系
- 背景终端(命令行)操作是程序员的必备技能,但是你知道怎么通过golang制作出如下命令吗?$ flag girl -hUsage of gi
- 前言在当前的JavaScript中,并没有枚举这个概念,在某些场景中使用枚举更能保证数据的正确性,减少数据校验过程,下面就介绍一下JavaS
- 一、语言结构和注意事项package main // 声明 main 包,表明当前是一个可执行程序import "fm
- 也许有人会说我火星了,但我的确是第一次知道,欢迎我从火星归来吧。在 Yahoo! 首页上隐藏着这样一个小秘密,大家到 www.yahoo.c
- 前言本文主要给大家介绍了关于Python3列表方法的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。1 使用[]或
- 将一份一亿多条数据的csv文件等分为10份,代码如下所示:import pandas as pddata = pd.read_c
- 计算Python Numpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下:import numpydis