zoukankan      html  css  js  c++  java
  • 定时PING指定主机并将结果通过钉钉推送给管理员

    需求:定时PING指定的IP,PING不通时向管理员钉钉发送一个消息。本例中使用的数据库是Oracle。

    大致原理:编写一个Windows批处理用PING命令测试指定IP是否能通。如果不能PING通,就插入一条记录到数据库的easysqlmail_wx_intf表中,让EasySQLMAIL将消息通过钉钉或是企业微信发送给管理员。

    实现方法:

    1、启用EasySQLMAIL的数据源上的“外部接口”,选择“外部接口”中的“允许从该数据源上的接口表中发送企业微信或钉钉消息”选项,并记下所选应用的“应用ID”:

    启用数据源的外部接口功能后,EasySQLMAIL会自动在数据源上创建接口表easysqmail_wx_intf。

    2、编写SQL脚本,用于插入一条记录到EasySQLMAIL的接口表中:

    INSERT INTO easysqlmail_wx_intf(wx_app_id,to_user,content)
    VALUES(18,'nanfangfeizhu',to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') || ':对192.168.1.199的PING测试未通,请关注');
    
    EXIT;

    将这个sql语句保存到ping-test.sql中。其中,18是要调用来发送消息的应用ID,在第一步选择发送消息的应用时可以看到。"nanfangfeizhu"这里改成您的钉钉帐号。钉钉帐号可以在EasySQLMAIL的“钉钉消息通道配置”->"管理应用列表和企业成员"中查询到:

    3、编写批处理文件:

    @ECHO OFF
    SET IP=192.168.1.199
    ping -n 1 %IP% | find "TTL="
    if %ERRORLEVEL% EQU 0 goto SUCCEED
    
    ECHO PING不通
    REM 这里调用sqlplus.exe执行一个SQL向数据库的easysqlmal_wx_intf接口表中插一条记录,通知EasySQLMAIL发一条消息出去
    sqlplus.exe 数据库用户名/数据库密码@数据库TNS @ping-test.sql>>ping-test.log
    
    GOTO END
    
    :SUCCEED
    ECHO PING通了
    
    :END

    将这段批处理代码保存到ping-test.bat中。并将ping-test.sql与ping-test.bat放在同一个目录中。

    4、在Windows的计划任务中添加一个任务,定时运行ping-test.bat:

    这样设置完成后,系统每隔一段时间运行一次ping-test.bat,当ping出现问题时,调用sqlplus执行ping-test.sql中的语句插入一条记录到数据库的easysqlmail_wx_intf接口表中,EasySQLMAIL会定时读取这个接口表中的数据,并把消息通过钉钉推送给指定的员工。

    此方法也可以推送电子邮件、企业微信消息。具体方法可以按EasySQLMAIL官网的相关文档来做。

    下面是一些有用的资料:

    EasySQLMAIL系统操作手册->外部接口功能 http://www.easysqlmail.com/manual/index.html?page=extintf.htm

    SQL语句中发送微信消息 https://www.cnblogs.com/flyingpigacc/p/10962327.html

  • 相关阅读:
    Jenkins(5)生成allure报告
    git 命令
    外连跳转微信
    微信分享接口
    微信接口
    计算php程序运行时间
    数组合并 不覆盖
    LARAVEL 分页
    laravel 随笔
    jq 监听返回事件
  • 原文地址:https://www.cnblogs.com/flyingpigacc/p/12506412.html
Copyright © 2011-2022 走看看