#!/bin/bash # 全员群ID CHAT_ID="oc_d7a8edc423d05f2fa6a5f4c0d8eb4e86" # 成员列表保存路径 SAVE_DIR="/root/.openclaw/workspace/member_records" mkdir -p $SAVE_DIR # 获取当前日期和昨天日期 TODAY=$(date +%Y-%m-%d) YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) # 今天的成员列表文件 TODAY_FILE="$SAVE_DIR/members_$TODAY.txt" # 昨天的成员列表文件 YESTERDAY_FILE="$SAVE_DIR/members_$YESTERDAY.txt" # 获取当前群成员列表 openclaw tool run feishu_chat_members --chat_id $CHAT_ID --page_size 100 | jq -r '.items[] | "\(.name)|\(.member_id)"' > $TODAY_FILE # 如果昨天的文件不存在,首次运行,不对比 if [ ! -f $YESTERDAY_FILE ]; then echo "首次运行,已保存今日成员列表,明天开始对比" exit 0 fi # 对比找出新增和减少的人员 ADDED=$(comm -23 <(sort $TODAY_FILE) <(sort $YESTERDAY_FILE) | awk -F '|' '{print $1"(" $2 ")"}') REMOVED=$(comm -13 <(sort $TODAY_FILE) <(sort $YESTERDAY_FILE) | awk -F '|' '{print $1"(" $2 ")"}') # 构建通知消息 MESSAGE="📊 每日全员群成员变动通知 ($TODAY):\n" HAS_CHANGE=0 if [ -n "$ADDED" ]; then HAS_CHANGE=1 MESSAGE="$MESSAGE\n✅ 新增成员:\n$ADDED\n" fi if [ -n "$REMOVED" ]; then HAS_CHANGE=1 MESSAGE="$MESSAGE\n❌ 移除成员:\n$REMOVED\n" fi # 如果有变动,发送通知 if [ $HAS_CHANGE -eq 1 ]; then # 发送飞书消息 openclaw tool run message --action send --channel feishu --target "user:ou_7c623036b45fe81f372b032da664a4fe" --message "$MESSAGE" else echo "今日无成员变动" fi