个人服务器发送消息至飞书

个人开发者在本地电脑虚拟机安装Linux服务器,不能每时每刻都坐在电脑前观察服务器运行情况?那就写个Shell脚本把服务器运行状况发送至手机的飞书群聊中。本文只介绍这一种用法,也有其他用法可供开发者们挖掘。

  1. 写个shell脚本,我这里命名为 send_feishu.sh,代码如下。按照代码里的内容创建飞书机器人并把密钥配置好。
  2. 在需要发送消息到手机的地方调用shell脚本即可。
bash 复制代码
#!/bin/bash

# ================== 获取飞书机器人密钥 ================
# 去飞书创建一个群聊,在群聊里面添加一个"自定义机器人",添加后复制该机器人的密钥
# 并且把该机器人的密钥(即WEBHOOK地址)写到 /etc/conf/feishu.conf 文件中(也可以直接写到脚本变量中,但是为了安全性,密钥都是不以明文形式写到脚本里的)
# 格式为: FEISHU_WEBHOOK="https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
source /etc/conf/feishu.conf
# ====================================================

send_feishu() {
    local msg="$1"
    curl -s -X POST "$FEISHU_WEBHOOK" \
        -H "Content-Type: application/json" \
        -d '{"msg_type":"text","content":{"text":"'"$msg"'"}}'
}

send_error_feishu() {
    local err_msg="$1"
    # 向飞书机器人发送消息
    send_feishu "【脚本异常警报】\n服务器:$(hostname)\n时间:$(date '+%Y-%m-%d %H:%M:%S')\n错误信息:\n$err_msg"    
    echo "脚本发生错误,已向飞书发送错误信息"
    exit 1
}

# ====================== 业务脚本 ======================
set -euo pipefail
trap 'send_error_feishu "脚本执行失败!错误命令:$BASH_COMMAND"' ERR

echo "启动 "向飞书机器人发送消息" 的脚本..."
# cd /art567/bin/false # 测试脚本异常

# 如果有参数就发送参数,没有参数就发送默认信息
if [ $# -gt 0 ]; then
    send_feishu "$1"
else
    send_feishu "【脚本执行成功】\n服务器:$(hostname)\n时间:$(date '+%Y-%m-%d %H:%M:%S')"
fi
echo "向飞书发送消息成功"

下面我将演示如何创建飞书机器人并拿到机器人的 Webhook 地址。以电脑端飞书为例:

相关推荐
QWEDDRFTG44 分钟前
服务器电源线怎么选?接口、电流、线径、认证一次讲清
服务器
mN9B2uk176 小时前
大数据量高并发的数据库优化
服务器·数据库·oracle
土星云SaturnCloud6 小时前
边缘计算赋能智慧工地:从“看得见“到“管得住“的智能化升级
服务器·人工智能·ai·边缘计算
zhangfeng11336 小时前
ps aux讲解,结合国家超算中心 hpc apptainer
linux·服务器·网络
无限进步_7 小时前
从零实现一个迷你Shell——深入理解Linux命令行解释器
linux·运维·服务器·开发语言·c++·chrome
阿标在干嘛7 小时前
政策平台的推送系统:消息队列、定时任务、AB测试的工程实践
服务器·数据库·ab测试
happymaker06267 小时前
Linux常见命令总结
linux·运维·服务器
开源量化GO8 小时前
期货 K 线算信号 tick 级止损:天勤双序列 wait_update 触发规则
linux·运维·服务器·python
m0_738120728 小时前
HVV应急溯源基础——Linux 系统安全加固配置指南(一)
linux·运维·服务器·安全·网络安全·系统安全
github_czy8 小时前
更加优雅的类型检查与传参---mcp源码分析
java·服务器·开发语言