Linux登录后发送钉钉消息

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

 可以在/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钉钉机器人的API操作通常需要通过Webhook或者是钉钉提供的SDK来实现。如果你想发送Excel文件,首先你需要确保你的服务器上安装了Python的requests库以及pandas库(用于处理Excel数据)。下面是一个基本步骤: 1. **设置Webhook**: 在钉钉的企业后台创建一个Webhook,这将是你发送消息的地方,并会提供一个URL。 2. **获取Excel内容**: 使用pandas读取Excel文件,例如`df = pd.read_excel('your_file.xlsx')`。 3. **转换为Base64**: 将Excel内容转成Base64字符串,因为大部分HTTP请求工具不直接支持二进制数据。例如: ```python import base64 excel_bytes = df.to_excel(index=False).encode('utf-8') excel_base64 = base64.b64encode(excel_bytes).decode('utf-8') ``` 4. **构造发送请求**: 创建一个包含文件内容的JSON结构,例如使用requests库发送POST请求到Webhook URL,包含文件名和Base64编码的内容: ```python headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer your_access_token', # 钉钉机器人的访问令牌 } data = { "msgtype": "file", "file": { "name": "report.xlsx", "base64": excel_base64, "type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, } response = requests.post(webhook_url, json=data, headers=headers) ``` 5. **检查响应**: 检查返回的状态码,确认是否发送成功。 **注意事项**: - `your_file.xlsx`、`webhook_url`和`your_access_token`需要替换为你实际的文件路径、Webhook地址和接入钉钉的凭证。 -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值