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

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

相关推荐
鲸采云SRM采购管理系统21 分钟前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
那年窗外下的雪.1 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
0x531 小时前
Java网络编程(二)
java·服务器·网络
小绫网络安全3 小时前
Kali Linux渗透测试入门教程:从零搭建到实战攻防
linux·运维·服务器
西安景驰电子3 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
luj_17683 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
水无痕simon3 小时前
3 短信应用场景以及平台架构
java·服务器
IPdodo_4 小时前
静态 IP、住宅 IP 和固定出口有什么区别?开发场景选型指南
服务器·网络·网络协议·tcp/ip·代理ip
wavemap6 小时前
HyperPHP 免费主机无限流量
服务器·php
Forever Nore6 小时前
LeetCode 13 罗马数字转整数 - 按规则处理
linux·服务器·leetcode