Files
GX-gp-notify/run_cron_crawl.sh
T

91 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
# 定时爬取脚本启动器
# 用于启动广西政府采购网公告定时爬取任务
# 自动激活项目虚拟环境并运行Python脚本
# 设置脚本遇到错误时退出
set -e
# 获取脚本所在目录的绝对路径
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$SCRIPT_DIR"
echo "========================================"
echo "🕒 广西政府采购网公告定时爬取任务"
echo "📂 项目目录: $PROJECT_ROOT"
echo "⏰ 开始时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "========================================"
# 检查虚拟环境
VENV_PATH="$PROJECT_ROOT/venv"
if [ ! -d "$VENV_PATH" ]; then
echo "❌ 错误: 找不到虚拟环境目录"
echo " 预期路径: $VENV_PATH"
echo " 请确保虚拟环境已正确创建"
exit 1
fi
# 检查虚拟环境激活脚本
VENV_ACTIVATE="$VENV_PATH/bin/activate"
if [ ! -f "$VENV_ACTIVATE" ]; then
echo "❌ 错误: 找不到虚拟环境激活脚本"
echo " 预期路径: $VENV_ACTIVATE"
exit 1
fi
echo "✅ 找到虚拟环境: $VENV_PATH"
# 激活虚拟环境
echo "🔧 激活虚拟环境..."
echo " 激活脚本: $VENV_ACTIVATE"
source "$VENV_ACTIVATE"
# 检查Python环境(在虚拟环境中)
if ! command -v python &> /dev/null; then
echo "❌ 错误: 虚拟环境中未找到Python命令"
exit 1
fi
# 检查Python版本(在虚拟环境中)
PYTHON_VERSION=$(python --version 2>&1 | cut -d' ' -f2 | cut -d. -f1-2)
echo "🐍 Python版本 (虚拟环境): $PYTHON_VERSION"
# 检查项目目录
if [ ! -d "$PROJECT_ROOT/gx_gp_monitor" ]; then
echo "❌ 错误: 找不到gx_gp_monitor目录"
echo " 预期路径: $PROJECT_ROOT/gx_gp_monitor"
exit 1
fi
# 检查cron_crawl.py文件
CRON_SCRIPT="$PROJECT_ROOT/gx_gp_monitor/cron_crawl.py"
if [ ! -f "$CRON_SCRIPT" ]; then
echo "❌ 错误: 找不到cron_crawl.py文件"
echo " 预期路径: $CRON_SCRIPT"
exit 1
fi
echo "✅ 环境检查通过"
echo "🚀 启动定时爬取脚本..."
# 切换到项目根目录
cd "$PROJECT_ROOT"
# 执行定时爬取脚本
python "$CRON_SCRIPT"
EXIT_CODE=$?
echo "========================================"
echo "🏁 任务完成"
echo "📅 结束时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo "🔚 退出代码: $EXIT_CODE"
if [ $EXIT_CODE -eq 0 ]; then
echo "✅ 任务执行成功"
else
echo "❌ 任务执行失败"
fi
echo "========================================"
exit $EXIT_CODE