#!/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