由于上个仓库主线和分支差距过大且主线不再使用所以新建此仓库

This commit is contained in:
Yakumo Hokori
2025-12-14 02:30:23 +08:00
commit 703d53c6f3
49 changed files with 10806 additions and 0 deletions

78
status_monitor.sh Executable file
View File

@@ -0,0 +1,78 @@
#!/bin/bash
# 状态监控和执行脚本
# 监控 /api/status根据状态执行相应操作并循环
BASE_URL="http://localhost:3000"
STATUS_ENDPOINT="/api/status"
SETSTATUS_ENDPOINT="/api/setstatus"
REPO_DIR="/Users/hokori/code/html/mirrors/linux-mirror-browser"
echo "=== 状态监控脚本启动 ==="
echo "监控地址: $BASE_URL$STATUS_ENDPOINT"
echo "仓库目录: $REPO_DIR"
echo "注意: 脚本运行时不写入日志文件"
echo
while true; do
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$TIMESTAMP] 检查状态..."
# 获取状态
STATUS_RESPONSE=$(curl -s "$BASE_URL$STATUS_ENDPOINT")
# 解析状态值
if echo "$STATUS_RESPONSE" | grep -q '"status":1'; then
echo "[$TIMESTAMP] 状态: 1 (需要更新)"
# 切换到仓库目录并执行更新脚本
if [ -d "$REPO_DIR" ]; then
echo "[$TIMESTAMP] 切换到目录: $REPO_DIR"
cd "$REPO_DIR" || {
echo "[$TIMESTAMP] 错误: 无法切换到目录 $REPO_DIR"
sleep 30
continue
}
echo "[$TIMESTAMP] 执行更新脚本: ./update_repo.sh"
if [ -f "./update_repo.sh" ]; then
chmod +x ./update_repo.sh
# 执行更新脚本,输出直接显示在控制台
echo "[$TIMESTAMP] ===== 更新脚本开始执行 ====="
./update_repo.sh
UPDATE_RESULT=$?
echo "[$TIMESTAMP] ===== 更新脚本执行结束 ====="
if [ $UPDATE_RESULT -eq 0 ]; then
echo "[$TIMESTAMP] 更新脚本执行成功"
CURRENT_TIME=$(date -u +"%Y-%m-%dT%H:%M:%S.%3NZ")
echo "[$TIMESTAMP] 发送状态更新: s=ok, time=$CURRENT_TIME"
# 发送状态更新
SETSTATUS_RESPONSE=$(curl -s -X POST "$BASE_URL$SETSTATUS_ENDPOINT" \
-H "Content-Type: application/json" \
-d "{\"s\": \"ok\", \"time\": \"$CURRENT_TIME\"}")
echo "[$TIMESTAMP] 状态更新响应: $SETSTATUS_RESPONSE"
else
echo "[$TIMESTAMP] 更新脚本执行失败,退出码: $UPDATE_RESULT"
fi
else
echo "[$TIMESTAMP] 错误: 更新脚本 ./update_repo.sh 不存在"
fi
else
echo "[$TIMESTAMP] 错误: 仓库目录 $REPO_DIR 不存在"
fi
elif echo "$STATUS_RESPONSE" | grep -q '"status":0'; then
echo "[$TIMESTAMP] 状态: 0 (无需更新),无事可做"
else
echo "[$TIMESTAMP] 错误: 无法解析状态响应"
echo "[$TIMESTAMP] 响应内容: $STATUS_RESPONSE"
fi
echo "[$TIMESTAMP] 等待30秒..."
sleep 30
echo "[$TIMESTAMP] ------------------------"
done