Files
ztb/scripts/health_check.sh
ztb-system 5f93dbe5e4 feat: 添加云端部署准备工作
- 添加 .env.example 环境变量模板
- 创建部署辅助脚本(run_crawler.sh、health_check.sh、backup.sh)
- 更新 .gitignore 排除备份目录
- 添加云端部署指南文档
2026-02-25 10:27:36 +08:00

105 lines
2.6 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 健康检查脚本
# 用于监控爬虫运行状态
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
cd "$PROJECT_DIR"
echo "=========================================="
echo "健康检查: $(date '+%Y-%m-%d %H:%M:%S')"
echo "=========================================="
STATUS=0
# 1. 检查Python进程
echo ""
echo "[1/5] 检查Python进程..."
if pgrep -f "main.py" > /dev/null; then
echo "✅ 爬虫正在运行"
echo " 进程ID: $(pgrep -f 'main.py')"
else
echo "⚠️ 爬虫未运行"
fi
# 2. 检查磁盘空间
echo ""
echo "[2/5] 检查磁盘空间..."
DISK_USAGE=$(df -h . | awk 'NR==2 {print $5}' | sed 's/%//')
echo " 当前使用率: ${DISK_USAGE}%"
if [ "$DISK_USAGE" -gt 80 ]; then
echo "❌ 警告磁盘空间使用率超过80%"
STATUS=1
elif [ "$DISK_USAGE" -gt 60 ]; then
echo "⚠️ 磁盘空间使用率超过60%"
else
echo "✅ 磁盘空间正常"
fi
# 3. 检查数据文件
echo ""
echo "[3/5] 检查数据文件..."
if [ -d "data" ]; then
CSV_COUNT=$(find data -name "*.csv" 2>/dev/null | wc -l)
JSON_COUNT=$(find data -name "*.json" 2>/dev/null | wc -l)
echo " CSV文件数: $CSV_COUNT"
echo " JSON文件数: $JSON_COUNT"
TOTAL_COUNT=$((CSV_COUNT + JSON_COUNT))
if [ "$TOTAL_COUNT" -gt 0 ]; then
echo "✅ 数据文件存在"
else
echo "⚠️ 暂无数据文件"
fi
else
echo "❌ 警告data目录不存在"
STATUS=1
fi
# 4. 检查日志文件
echo ""
echo "[4/5] 检查日志文件..."
if [ -d "logs" ]; then
LOG_COUNT=$(find logs -name "*.log" 2>/dev/null | wc -l)
echo " 日志文件数: $LOG_COUNT"
# 检查最近的日志
LATEST_LOG=$(ls -t logs/*.log 2>/dev/null | head -1)
if [ -n "$LATEST_LOG" ]; then
echo " 最新日志: $LATEST_LOG"
echo " 最后几行:"
tail -5 "$LATEST_LOG" | sed 's/^/ /'
fi
else
echo "⚠️ logs目录不存在"
fi
# 5. 检查配置文件
echo ""
echo "[5/5] 检查配置文件..."
if [ -f "config.py" ]; then
echo "✅ config.py 存在"
else
echo "❌ config.py 不存在"
STATUS=1
fi
if [ -f "config_fixed.py" ]; then
echo "✅ config_fixed.py 存在"
else
echo "❌ config_fixed.py 不存在"
STATUS=1
fi
echo ""
echo "=========================================="
if [ $STATUS -eq 0 ]; then
echo "✅ 健康检查完成,状态正常"
else
echo "⚠️ 健康检查完成,存在警告"
fi
echo "=========================================="
exit $STATUS