返回顶部
首页 > 资讯 > 服务器 >java实现对服务器的自动巡检邮件通知
  • 906
分享到

java实现对服务器的自动巡检邮件通知

java服务器巡检 2023-05-31 15:05:26 906人浏览 安东尼
摘要

1、需求之前一直是手动的巡检,然后贴图,最近服务器数量大增,有点忙不过来了。因为一直用的java,对shell脚本不是特别了解,所以这次用java写了个小项目,实现对多服务器,多任务的巡检,巡检结果有故障的会通过邮件通知。2、功能和效果巡检

1、需求

之前一直是手动的巡检,然后贴图,最近服务器数量大增,有点忙不过来了。因为一直用的java,对shell脚本不是特别了解,所以这次用java写了个小项目,实现对多服务器,多任务的巡检,巡检结果有故障的会通过邮件通知。

2、功能和效果

巡检的项目主要是服务,硬盘,内存等,命令可配置,巡检结果以日期和服务器为基准输出文件,错误信息通过邮件通知管理运维人员。

java实现对服务器的自动巡检邮件通知

java实现对服务器的自动巡检邮件通知

java实现对服务器的自动巡检邮件通知

3、代码

action:

package com.save.action;import java.text.SimpleDateFORMat;import java.util.ArrayList;import java.util.Date;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.alibaba.fastJSON.jsON;import com.save.pojo.Cmd;import com.save.until.MailUtil;import com.save.until.PropertiesUtil;import com.save.until.sshCommUtil;import com.save.until.WriteUntil;public class InspAction { final static Logger logger = LoggerFactory.getLogger(InspAction.class);  public void execute() throws Exception{  List<Cmd> list = this.handlerData();  Set<String> mail = new HashSet<String>();  for (Cmd cmd : list) {   String ip = cmd.getIp();   int port = 22;   String localIp = null;   int localPort = 0;   int timeOut = 6000;   String userName = cmd.getUsername();   String passWord = cmd.getPassword();   String server = cmd.getServer();   String[] cmds = cmd.getCmds();   String[] result = null;   logger.info(ip+"执行巡检任务开始");   try {    result = SSHCommUtil.execShellCmdBySSH(ip, port, localIp, localPort, timeOut,      userName, password, cmds);   } catch (Exception e) {    e.printStackTrace();    logger.error(ip+"巡检,服务器连接不上");    mail.add(ip+" "+"巡检,服务器连接不上");   }   Date date = new Date();   SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");   String dateString = formatter.format(date);   //1、服务存活验证 2、硬盘占用验证 3、巡检结果写入文件   if (result != null) {    for (String string : result) {     if (string.contains("ps -ef|grep java")||string.contains("ps -ef|grep monGo")||string.contains("ps -ef|grep redis")) {      if (!string.contains(server)) {       mail.add(ip+" "+server+"服务不存在");      }     }     if (string.contains("df -h")) {      String patt = "^[5]\\d{1}\\%|[5-9]\\d{1}\\%|\\d{3,}\\%$";      String group = null;      Pattern p = Pattern.compile(patt);      Matcher m = p.matcher(string);      while (m.find()) {       group = m.group();      }      if (!StringUtils.isBlank(group)) {       mail.add(ip+" "+"硬盘占用超出预警线");      }     }     WriteUntil.createFile("E:\\save", dateString, "\\"+ip+".txt", string);    }    logger.info(ip+"巡检结束");   }  }  //发送故障邮件通知  if (!mail.isEmpty()||mail.size()!=0) {   MailUtil.getInstance().sendMail(mail);  } }  private List<Cmd> handlerData(){  logger.info("开始加载需要巡检的服务器数据");  Cmd cmd = null;  List<Cmd> list = new ArrayList<Cmd>();   Map map = PropertiesUtil.getInstance().getAllProperty();  Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();  while (it.hasNext()) {   Map.Entry<String, String> entry = it.next();   cmd =new Cmd();   cmd.setIp(entry.geTKEy());   Cmd cmd2 = JSON.parseObject(entry.getValue(), Cmd.class);   String[] cmds = cmd2.getShell().split(",");   cmd.setCmds(cmds);   cmd.setServer(cmd2.getServer());   cmd.setUsername(cmd2.getUsername());   cmd.setPassword(cmd2.getPassword());   list.add(cmd);  }  logger.info("数据加载完毕");  return list; }}

--结束END--

本文标题: java实现对服务器的自动巡检邮件通知

本文链接: https://lsjlt.com/news/226549.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java实现对服务器的自动巡检邮件通知
    1、需求之前一直是手动的巡检,然后贴图,最近服务器数量大增,有点忙不过来了。因为一直用的java,对shell脚本不是特别了解,所以这次用java写了个小项目,实现对多服务器,多任务的巡检,巡检结果有故障的会通过邮件通知。2、功能和效果巡检...
    99+
    2023-05-31
    java 服务器 巡检
  • shell脚本实现多台服务器自动巡检--可参考学习
    shell脚本实现多台服务器自动巡检 摘要:         运维服务一个项目二十多台(或者多台)服务器,每天要做服务器的性能巡检工作是查看服务器的C...
    99+
    2023-06-06
  • java实现服务器巡查的代码
    目录需求批量ping1.Jdk1.5的InetAddresss方式2.最简单的办法,直接调用CMD3.Java调用shell执行ping命令批量ssh检查需求:依赖引入工具封装密码核...
    99+
    2024-04-02
  • Python实现电脑唤醒后自动拍照截屏并发邮件通知
    目录背景具体实现 摄像头拍照 屏幕截图写邮件发邮件台式机唤醒后触发 python 脚本完成背景 背景是这样的, 我的家里台式机常年 休眠, 并配置了&n...
    99+
    2023-01-10
    Python电脑自动拍照截屏 Python电脑自动截屏 Python电脑截屏
  • 阿里云服务器Java实现发送邮件
    在互联网时代,电子邮件已经成为我们日常生活和工作中必不可少的一部分。为了方便用户使用阿里云服务器进行邮件发送,本文将介绍如何使用Java实现发送邮件的功能,并提供具体的代码示例。 详细说明:1. Java发送邮件的基础知识在开始之前,我们需...
    99+
    2024-01-14
    阿里 发送邮件 服务器
  • 怎么用Python脚本实现电脑唤醒后自动拍照并截屏发邮件通知
    这篇文章主要介绍“怎么用Python脚本实现电脑唤醒后自动拍照并截屏发邮件通知”,在日常操作中,相信很多人在怎么用Python脚本实现电脑唤醒后自动拍照并截屏发邮件通知问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-07-05
  • PHP实现邮件发送时的邮件服务器选择
    随着互联网快速发展,电子邮件作为一种重要的通信方式,被广泛应用于个人和企业的日常生活和工作中。而邮件服务器是电子邮件体系结构中的核心组成部分。在使用PHP实现邮件发送时,如何选择合适的邮件服务器是非常重要的。一、邮件服务器的选择邮件服务器是...
    99+
    2023-05-22
    PHP邮件发送 实现方法 邮件服务器选择
  • linux两台服务器实现自动同步文件
    服务器B(172.17.166.11)上开机或者重启会自动拉取服务器A(172.17.166.10)上指定目录下所有文件 1、创建服务器B到服务器A的互信 (1)服务器B上执行 ssh-keygen -t rsa ...
    99+
    2022-06-03
    linux 服务器 同步文件
  • 阿里云STMP邮箱服务器地址实现高效的邮件传输
    本文将介绍阿里云STMP邮箱服务器地址的使用方法,并通过实例演示如何实现高效的邮件传输。 阿里云STMP邮箱服务器地址是阿里云提供的用于发送和接收电子邮件的服务。通过使用阿里云STMP邮箱服务器地址,用户可以轻松地配置自己的电子邮件客户端,...
    99+
    2023-12-28
    高效 阿里 邮箱
  • 阿里云建立邮件服务器的目的及实现
    随着数字化时代的到来,信息传递的方式也在逐渐改变,电子邮件已经成为了现代社会不可或缺的沟通工具。而在这种情况下,企业如何保证邮件系统的稳定性和安全性,成为了企业关注的焦点。阿里云作为中国领先的云计算服务提供商,其建立邮件服务器的目的是为了保...
    99+
    2023-11-14
    目的 阿里 邮件服务器
  • java中通过servle4t实现浏览器服务器的
    ava中servlet类,首先建一个包cn.java.servlet,同样建一个cn.java.entity的包用来建立实体类。本节是Java-web阶段第52课时,通过继承servlet类实现了,从浏览器端发送请求到服务器(这时候在con...
    99+
    2023-06-02
  • Java操作MyBatis-Plus通过自定义拦截器对mysql字段以注解形式实现自动加解密
    一.需求背景 跟大学室友闲谈时,了解到他公司正在做项目内对数据库敏感字段实现自动加解密的需求,使用的技术是Springboot,Mybatis-Plus,MySql等技术栈,加密算法是用的AES,密钥是放在华为云,这里实现一个阉割版的dem...
    99+
    2023-09-06
    mybatis mysql java
  • 描述Netdata中实现对邮件和消息队列服务监控的方法
    Netdata是一个开源的、实时的、性能监控工具,可以实时监控系统的各种指标。要监控邮件和消息队列服务,可以通过以下方法实现: SMTP监控:Netdata可以监控SMTP服务器的性能指标,包括邮件传输速度、邮件队列长度、连接数等。可以...
    99+
    2024-06-03
    netdata
  • 如何使用expect实现自动检测并重启另外一台服务器上的程序
    这篇文章主要为大家展示了“如何使用expect实现自动检测并重启另外一台服务器上的程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用expect实现自动检测并重启另外一台服务器上的程序”...
    99+
    2023-06-09
  • 如何通过Java代码实现Jetty的Http服务器
    这篇文章主要讲解了“如何通过Java代码实现Jetty的Http服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过Java代码实现Jetty的Http服务器”吧!Jetty是一个轻...
    99+
    2023-07-02
  • Java实现文件上传到服务器本地,并通过url访问
    文章目录 一、场景二、SpringBoot默认静态资源访问方式三、上传的文件应该存储在哪?怎么访问?1.文件存储在哪?2.怎么访问?示例代码 四、测试五、总结 一、场景 Java实现文件上传到服务器本地,并通过url...
    99+
    2023-08-19
    java 服务器 spring boot
  • 如何实现自动写入文件上传到指定服务器SoftwareMeteringCLS.vbs
    这篇文章给大家分享的是有关如何实现自动写入文件上传到指定服务器SoftwareMeteringCLS.vbs的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:' FileName: Software...
    99+
    2023-06-08
  • 怎么用Spring Cloud Bus实现通知微服务架构的配置文件的更改
    本篇内容主要讲解“怎么用Spring Cloud Bus实现通知微服务架构的配置文件的更改”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Spring Cloud Bus实现通知微服务架构的...
    99+
    2023-06-19
  • Java KindEditor粘贴图片自动上传到服务器功能怎么实现
    这篇文章主要介绍了Java KindEditor粘贴图片自动上传到服务器功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java KindEditor粘贴图片自动上传到服务器功能怎...
    99+
    2023-07-06
  • 怎么用BAT脚本实现自动上传文件到ftp服务器的功能
    这篇文章主要讲解了“怎么用BAT脚本实现自动上传文件到ftp服务器的功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用BAT脚本实现自动上传文件到ftp服务器的功能”吧!代码如下:@E...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作