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

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

相关推荐
YuanDaima204820 分钟前
Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控
linux·运维·服务器·网络·人工智能
lolo大魔王2 小时前
Linux 数据文件处理实战:排序、搜索、压缩、归档一站式详解
linux·运维·服务器
189228048612 小时前
NY382固态MT29F32T08GSLBHL8-24QM:B
大数据·服务器·人工智能·科技·缓存
xhbh6662 小时前
网关端口映射和路由器端口转发有什么区别?配置要点全解析
运维·服务器·网络·智能路由器·端口映射·映射·无痕网关
STDD3 小时前
Soulmask《灵魂面具》 专用服务器搭建教程
运维·服务器·github
半壶清水3 小时前
用P4 Tutorial、BMv2 和 Mininet‌解析网络第一集------模拟环境搭建
运维·服务器·网络·网络协议·tcp/ip
.YYY3 小时前
RHCE--Linux循环执行的例行性任务:crontab从入门到精通
linux·运维·服务器
ambition202423 小时前
UNIX消息队列:从理论模型到工程实现的演进
linux·服务器·unix
高翔·权衡之境3 小时前
主题10:实时性——硬实时与软实时
服务器·网络·驱动开发·信息与通信·智能硬件
云商直通车4 小时前
华为云ECS购买与配置超详细教程
服务器·数据库·华为云