105 lines
2.6 KiB
Bash
105 lines
2.6 KiB
Bash
#!/bin/bash
|
|
# 部署验证脚本
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m'
|
|
|
|
SERVER_IP=$(hostname -I | awk '{print $1}')
|
|
PASS=0
|
|
FAIL=0
|
|
|
|
check_service() {
|
|
local name=$1
|
|
local url=$2
|
|
echo -n "检查 ${name} ... "
|
|
if curl -s -o /dev/null -w "%{http_code}" "${url}" | grep -q "200\|302\|401"; then
|
|
echo -e "${GREEN}通过${NC}"
|
|
((PASS++))
|
|
else
|
|
echo -e "${RED}失败${NC}"
|
|
((FAIL++))
|
|
fi
|
|
}
|
|
|
|
echo -e "${YELLOW}========================================${NC}"
|
|
echo -e "${YELLOW} GoWVP + ZLMediaKit 部署验证 ${NC}"
|
|
echo -e "${YELLOW}========================================${NC}"
|
|
echo "服务器IP: ${SERVER_IP}"
|
|
echo ""
|
|
|
|
# 1. 检查 Docker 服务
|
|
echo -n "检查 Docker 服务 ... "
|
|
if systemctl is-active docker >/dev/null 2>&1; then
|
|
echo -e "${GREEN}通过${NC}"
|
|
((PASS++))
|
|
else
|
|
echo -e "${RED}失败${NC}"
|
|
((FAIL++))
|
|
fi
|
|
|
|
# 2. 检查容器运行状态
|
|
echo -n "检查 ZLMediaKit 容器 ... "
|
|
if docker ps | grep -q zlmediakit; then
|
|
echo -e "${GREEN}通过${NC}"
|
|
((PASS++))
|
|
else
|
|
echo -e "${RED}失败${NC}"
|
|
((FAIL++))
|
|
fi
|
|
|
|
echo -n "检查 GoWVP 容器 ... "
|
|
if docker ps | grep -q gowvp; then
|
|
echo -e "${GREEN}通过${NC}"
|
|
((PASS++))
|
|
else
|
|
echo -e "${RED}失败${NC}"
|
|
((FAIL++))
|
|
fi
|
|
|
|
# 3. 检查端口监听
|
|
echo -n "检查 HTTP 80 端口 ... "
|
|
if netstat -tlnp 2>/dev/null | grep -q ":80 " || ss -tlnp 2>/dev/null | grep -q ":80 "; then
|
|
echo -e "${GREEN}通过${NC}"
|
|
((PASS++))
|
|
else
|
|
echo -e "${RED}失败${NC}"
|
|
((FAIL++))
|
|
fi
|
|
|
|
echo -n "检查 GoWVP 15123 端口 ... "
|
|
if netstat -tlnp 2>/dev/null | grep -q ":15123 " || ss -tlnp 2>/dev/null | grep -q ":15123 "; then
|
|
echo -e "${GREEN}通过${NC}"
|
|
((PASS++))
|
|
else
|
|
echo -e "${RED}失败${NC}"
|
|
((FAIL++))
|
|
fi
|
|
|
|
# 4. HTTP API 测试
|
|
check_service "ZLMediaKit API" "http://${SERVER_IP}/index/api/getApiList"
|
|
check_service "GoWVP Web界面" "http://${SERVER_IP}:15123"
|
|
|
|
# 5. 检查日志是否有错误
|
|
echo -n "检查 ZLMediaKit 日志错误 ... "
|
|
if docker logs zlmediakit 2>&1 | grep -qi "error\|fatal"; then
|
|
echo -e "${YELLOW}警告: 发现错误日志${NC}"
|
|
else
|
|
echo -e "${GREEN}通过${NC}"
|
|
((PASS++))
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${YELLOW}========================================${NC}"
|
|
echo -e "${GREEN} 验证完成: ${PASS} 通过, ${FAIL} 失败 ${NC}"
|
|
echo -e "${YELLOW}========================================${NC}"
|
|
|
|
if [ $FAIL -eq 0 ]; then
|
|
echo -e "${GREEN}所有检查通过!部署成功!${NC}"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}部分检查未通过,请查看上方详情${NC}"
|
|
exit 1
|
|
fi
|