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

个人开发者在本地电脑虚拟机安装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 地址。以电脑端飞书为例:

相关推荐
问心无愧0513几秒前
[ACTF2020 新生赛]Exec
运维·服务器·笔记
微订校园外卖平台4 分钟前
同城外卖跑腿平台需要服务器吗?交付方式、部署架构与上线核对
服务器·架构·github·外卖系统·本地生活·微订
发量惊人的中年网工5 分钟前
游戏出海服务器选哪个IDC?开服卡顿、延迟抖动的排查与选节点思路
服务器·idc
开开心心_Every6 分钟前
黄金价格软件国内外价格实时监控超方便
运维·服务器·游戏·智能手机·pdf·lua·perl
LMT_Lanmantech9 分钟前
HyperWorks许可:almutil显示Unit满了,数据到底准不准?
运维·服务器·算法
system_error_x10 分钟前
服务器的替代方案:从物理机到云原生的全面对比
运维·服务器·云原生
wespaul2 小时前
VeapAI 自然语言操作实战|第 07 篇:执行层——编排引擎与全局语义命令
服务器·人工智能·milvus
lambo mercy2 小时前
Day4:流式传输
运维·服务器·网络
I'm Jie2 小时前
Rhost v2.0.0 版本发布!!!不止 SSH 终端,内置 AI Agent 支持自然语言操作远程服务器
运维·服务器·rust·开源·ssh·tauri·finalshell
Spatial3Ddddd2 小时前
2026空间三维重建服务商横向对比
java·服务器·人工智能