微信扫码 , 快速开始
3
5
0
江湖小虾
让GPT写了一个脚本,实现飞书机器人通知
#!/bin/bash # --- 用户配置区 (请根据你的实际情况修改) --- # 1. 你的 Nginx 访问日志文件完整路径 NGINX_LOG_FILE="/usr/trim/nginx/logs/access.log" # 2. 【新】在这里定义所有你关心的日志特征(每行一个) # 只要日志中出现下面列表中的任意一条,就会触发通知。 LOGIN_PATTERNS=( # --- 在下面添加或修改你的特征 --- "/static/app/icons/trim.download-center/icon.png" "POST /v1/accountapi/check" # --- 到此为止 --- ) # 3. 你真实的飞书机器人 Webhook 地址 FEISHU_WEBHOOK_URL="Webhook 地址" # --- 脚本核心逻辑 (一般无需修改) --- # 定义一个带时间戳的日志输出函数 log_with_time() { echo "$(date +'%Y-%m-%d %H:%M:%S') - $1" } # 【新】将数组格式的特征列表,合并成一个用 "|" 分隔的字符串,以供 grep 使用 # 例如,将 ("a" "b" "c") 变为 "a|b|c" IFS='|' GREP_PATTERN="${LOGIN_PATTERNS[*]}" IFS=$' \t\n' # 恢复默认的 IFS # 检查模式列表是否为空 if [ -z "${GREP_PATTERN}" ]; then log_with_time "错误:监控的日志特征列表 (LOGIN_PATTERNS) 为空,请至少添加一个特征。" exit 1 fi log_with_time "开始监控日志文件: ${NGINX_LOG_FILE}" log_with_time "正在查找以下任一特征: ${GREP_PATTERN}" # 使用 tail -F 实时监控日志文件的新增内容 # -F 参数可以应对日志文件的轮转 (log rotation) tail -n 0 -F "${NGINX_LOG_FILE}" | while read -r line; do # 检查当前行是否包含我们定义的“登录成功”特征 if echo "${line}" | grep -qE "${GREP_PATTERN}"; then # 从日志行中提取 IP 地址 (默认是第一个字段) IP_ADDRESS=$(echo "${line}" | awk '{print $1}') # 获取当前时间 TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S") # 准备要发送到飞书的消息内容 MESSAGE_TEXT="【登录提醒🔔】\n\n- 时间: ${TIMESTAMP}\n- 登录IP: ${IP_ADDRESS}" log_with_time "检测到登录行为,来源 IP: ${IP_ADDRESS}。正在发送飞书通知..." # 使用 curl 命令将消息发送到飞书 curl -s -X POST -H "Content-Type: application/json" \ -d '{"msg_type":"text","content":{"text":"'"${MESSAGE_TEXT}"'"}}' \ "${FEISHU_WEBHOOK_URL}" > /dev/null # 在终端输出一个换行,方便查看 echo "" fi done
我来回答
18
127
30
社区共建团
举报
建议下次,这种经验分享,放在 攻略分享 飞牛私有云论坛 fnOS 这个板块
傀儡师 发表于 2025-8-10 15:57 建议下次,这种经验分享,放在 攻略分享 飞牛私有云论坛 fnOS 这个板块
发都发了呗,咱下次分享在那边就是了,这边都是问问题的多,分享那边,更利于交流不是
傀儡师 发表于 2025-8-10 21:01 发都发了呗,咱下次分享在那边就是了,这边都是问问题的多,分享那边,更利于交流不是 ...
本版积分规则 发表回复
飞牛私有云社区上线,晒NAS活动纪念勋章
飞牛社区组织荣誉认证,为飞牛私有云社区发展无私奉献,发光发热
参与“极速下载,畅享特权”百度网盘活动纪念