Windows+Linux 服务器登录报警,编写脚本实现钉钉群机器人报警通知

本贴最后更新于 816 天前,其中的信息可能已经时异事殊

服务器有时不知道谁登录了系统,出现了问题也无法找到责任人。谁动了服务器而无从可知。不如在服务器安装个监控,监视下每天登录服务器的用户。

Linux 系统

注册钉钉机器人,获取机器人的 webhook 地址

image.png

登录服务器编写以下代码

#!/bin/bash
#获取登录者的用户名
user=$USER
#获取登录者的IP地址
ip=${SSH_CLIENT%% *}
#获取登录的时间
time=$(date +%F%t%k:%M)
#服务器的IP地址
server='xxxxxxx.xxxxx.xxxxx.xxxx'


function SendMessageToDingding(){

#你钉钉机器人的地址。
local url="https://oapi.dingtalk.com/robot/send?access_token=你钉钉机器人的token"

local UA="Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/535.24(KHTML,likeGecko)Chrome/19.0.1055.1Safari/535.24"

local res=`curl -XPOST -s -L -H"Content-Type:application/json" -H"charset:utf-8" $url -d"{\"msgtype\":\"text\",\"text\":{\"content\":\"$1\n$2\"}}"`

}
SendMessageToDingding "服务器登录告警" "时间 $time,用户 $user,用户地址 $ip,服务器地址 $server"

写入文件 /etc/ssh/sshrc 即可。

之后就可以放心了,有任何登录,都会收到消息。再也不用提心吊胆了。

image.png
参考文章

Windows 系统

获取机器人链接步骤与以上相同

windows 下编写 bat 脚本

首先创建脚本文件.bat 执行推送钉钉功能 登录推送文件 in.bat 退出登录 out.bat

简单推送代码参考如下:

curl "https://oapi.dingtalk.com/robot/send?access_token=你钉钉机器人的token" -H "Content-Type: application/json"  -d "{\"msgtype\": \"text\",\"text\": {\"content\":\"login IN %date:~0,10% %time:~0,5%\"}}" -X POST

curl "https://oapi.dingtalk.com/robot/send?access_token=你钉钉机器人的token" -H "Content-Type: application/json"  -d "{\"msgtype\": \"text\",\"text\": {\"content\":\"login OUT %date:~0,10% %time:~0,5%\"}}" -X POST

由于 windows 系统不自带 curl 功能无法直接访问接口推送消息 需要下载一个 curl 工具 curl.zip

下载后解压,并配置解压后的目录到系统 PATH,之后 CMD 中输入 curl --help 测试是否成功

image.png

image.png

现在设置监控就可以实现推送,但是.bat 文件执行时会出现一个黑框,让人很是害怕,所以经过查询找到了一种方法

编写 vbs 文件里边执行.bat 文件,就不会出现黑框,创建.vbs 文件 in.vbs out.vbs 代码如下:

createobject("wscript.shell").run "这里填对应 bat 存放的位置",0

createobject("wscript.shell").run "C:\IN.bat",0
createobject("wscript.shell").run "C:\OUT.bat",0

image.png

设置登录断开监控

1.登录 windows 服务器 打开控制面板中的管理工具

2.打开任务计划程序

3.点击创建任务 名称自定义 in

4.点击触发器,点击新建 开始任务下拉框选择“当连接到用户会话时”下方出现对应设置选“远程计算机连接”确定

5.点击操作,点击新建 操作下拉框选择“启动程序”下方程序或脚本选择自己创建的那个 in.vbs 文件 注:vbs 文件与 bat 文件最好不要存放在有空格的文件夹下

6.相同操作创建 out 任务 触发器选择“当从用户会话断开连接时”脚本选择自己创建的那个 out.vbs 文件

image.png

image.png

image.png

image.png

这样就实现了简单监控登录退出功能

image.png

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    915 引用 • 931 回帖
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    215 引用 • 462 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...