110 lines
3.9 KiB
Bash
110 lines
3.9 KiB
Bash
#!/bin/bash
|
||
# 旧设备升级脚本:从 OrangePi3588Media/rk3588-media-server 升级到 safesight-edge-server
|
||
# 使用离线包 + deploy.sh,保留所有现有摄像头配置,丢弃旧源码
|
||
set -e
|
||
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m'
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
|
||
echo -e "${YELLOW}========================================${NC}"
|
||
echo -e "${YELLOW} 旧设备升级到 safesight-edge-server${NC}"
|
||
echo -e "${YELLOW}========================================${NC}"
|
||
echo ""
|
||
|
||
if [ "$(id -u)" -ne 0 ]; then
|
||
echo -e "${RED}请使用 sudo 运行${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
AGENT_TOKEN="${AGENT_TOKEN:-}"
|
||
if [ -z "$AGENT_TOKEN" ]; then
|
||
# Try to read from old agent config
|
||
if [ -f /opt/rk3588-agent/agent.config.json ]; then
|
||
AGENT_TOKEN=$(grep -o '"token":"[^"]*"' /opt/rk3588-agent/agent.config.json | cut -d'"' -f4)
|
||
echo -e "${GREEN}✓${NC} 从旧配置读取 agent token"
|
||
fi
|
||
fi
|
||
if [ -z "$AGENT_TOKEN" ]; then
|
||
echo -e "${RED}错误: 无法获取 AGENT_TOKEN${NC}"
|
||
echo "请设置: sudo AGENT_TOKEN=<token> $0"
|
||
exit 1
|
||
fi
|
||
|
||
# 确认
|
||
BACKUP_DIR="/root/safesight-upgrade-backup-$(date +%Y%m%d%H%M%S)"
|
||
mkdir -p "$BACKUP_DIR"
|
||
echo "此操作将:"
|
||
echo " 1. 备份配置到 $BACKUP_DIR"
|
||
echo " 2. 停止并移除旧服务"
|
||
echo " 3. 部署新版本(保留摄像头配置)"
|
||
echo " 4. 移除旧源码"
|
||
echo ""
|
||
read -p "继续? (y/N): " -n 1 -r
|
||
echo
|
||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||
echo "已取消"
|
||
exit 0
|
||
fi
|
||
|
||
# ---- 1. 备份配置 ----
|
||
echo -e "${GREEN}[1/5] 备份配置${NC}"
|
||
[ -f /opt/rk3588-media-server/etc/media-server.json ] && cp /opt/rk3588-media-server/etc/media-server.json "$BACKUP_DIR/" && echo " ✓ media-server 配置"
|
||
[ -f /opt/rk3588-agent/agent.config.json ] && cp /opt/rk3588-agent/agent.config.json "$BACKUP_DIR/" && echo " ✓ agent 配置"
|
||
|
||
# ---- 2. 停止并移除旧服务 ----
|
||
echo -e "${GREEN}[2/5] 停止旧服务${NC}"
|
||
systemctl stop rk3588-agent media-server 2>/dev/null || true
|
||
systemctl disable rk3588-agent media-server 2>/dev/null || true
|
||
rm -f /etc/systemd/system/rk3588-agent.service /etc/systemd/system/media-server.service
|
||
systemctl daemon-reload
|
||
echo " 旧服务已停止"
|
||
|
||
# ---- 3. 用 deploy.sh 安装新版本 ----
|
||
echo -e "${GREEN}[3/5] 安装新版本${NC}"
|
||
AGENT_TOKEN="$AGENT_TOKEN" bash "$SCRIPT_DIR/deploy.sh" install
|
||
|
||
# ---- 4. 恢复摄像头配置 ----
|
||
echo -e "${GREEN}[4/5] 恢复摄像头配置${NC}"
|
||
if [ -f "$BACKUP_DIR/media-server.json" ]; then
|
||
OLD_CONFIG="$BACKUP_DIR/media-server.json"
|
||
NEW_CONFIG="/opt/safesight-edge-server/etc/safesight-edge-server.json"
|
||
|
||
# Copy old config, fix paths to new locations
|
||
cp "$OLD_CONFIG" "$NEW_CONFIG"
|
||
sed -i 's|/opt/rk3588-media-server|/opt/safesight-edge-server|g' "$NEW_CONFIG"
|
||
sed -i 's|/var/lib/rk3588-media-server|/var/lib/safesight-edge-server|g' "$NEW_CONFIG"
|
||
|
||
echo " ✓ 摄像头配置已恢复"
|
||
|
||
# Restart to apply restored config
|
||
systemctl restart safesight-edge-server
|
||
else
|
||
echo " 未找到旧摄像头配置,使用部署默认配置"
|
||
fi
|
||
|
||
# ---- 5. 清理旧源码 ----
|
||
echo -e "${GREEN}[5/5] 清理旧源码${NC}"
|
||
if [ -d ~/apps/OrangePi3588Media ]; then
|
||
rm -rf ~/apps/OrangePi3588Media
|
||
echo " ✓ 已删除 ~/apps/OrangePi3588Media"
|
||
fi
|
||
# Remove old installation directories
|
||
rm -rf /opt/rk3588-media-server /opt/rk3588-agent 2>/dev/null || true
|
||
rm -rf /var/lib/rk3588-media-server /var/lib/rk3588-agent 2>/dev/null || true
|
||
echo " ✓ 旧安装目录已清理"
|
||
|
||
echo ""
|
||
echo -e "${GREEN}========================================${NC}"
|
||
echo -e "${GREEN} 升级完成!${NC}"
|
||
echo -e "${GREEN}========================================${NC}"
|
||
echo ""
|
||
echo " 备份位置: $BACKUP_DIR"
|
||
echo " Edge Server: $(systemctl is-active safesight-edge-server)"
|
||
echo " Agent: $(systemctl is-active safesight-edge-agent)"
|
||
echo ""
|
||
echo " 验证: curl http://localhost:9100/v1/info"
|