91 lines
2.4 KiB
Bash
Executable File
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
|