可以在/etc/profile.d/中新建一个文件保存下面代码,但需要执行完才能进入到linux命令行,会有卡顿。
#!/bin/bash
hostName=`hostname`
date=`date`
outIp=$(curl -s ifconfig.me)
intIp=($(hostname -I))
loginInfo=($(who -m | cut -d" " -f6))
loginIp=($SSH_CLIENT)
loginAddre=$(curl -s "https://www.ip.cn/api/index?type=1&ip=${loginIp}" | jq -r '.address')
data='{"msgtype": "markdown","markdown": {"title":"SSH登录通知","text":"服务器:'$hostName' \n > 服务器IP:'${intIp}'(内) '$outIp'(外) \n > 登录时间:'$date' \n > 登录账号:'$USER' \n > 登录终端:'$loginInfo' \n > 登录者IP:'$SSH_CLIENT'('$loginAddre')"},"at":{"isAtAll":true}}'
curl --request POST \
--url 'https://oapi.dingtalk.com/robot/send?access_token=f5bc6e0807****86f31' \
--header 'content-type: application/json' \
--data "$data"
注意消息中\n前是两个空格,否则没有换行,详见markdown规则。
在/etc/profile中加入下面两行,disown $!如果不加会在终端显示个“[1]+ 已完成”
/login_alert.sh > /dev/null 2>&1 &
disown $!
接收效果如下

自动化脚本监控Linux SSH登录信息并发送钉钉通知
本文介绍如何在Linux中创建一个bash脚本,实时获取主机名、IP、登录信息等,并通过CURL调用DingTalk API发送通知。脚本会记录SSH登录详情,确保终端简洁,且执行时可能引起轻微卡顿。
1620

被折叠的 条评论
为什么被折叠?



