modify scripts

This commit is contained in:
2025-07-23 23:18:21 +08:00
parent 950294e882
commit cc6530d73a
8 changed files with 363 additions and 16 deletions

View File

@ -8,6 +8,7 @@ export PATH="/home/ubuntu/.local/bin:$PATH"
# 项目基础路径
SCRAPY_PROJ_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
GIT_PROJ_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/../../" && pwd)
LOG_DIR="${SCRAPY_PROJ_DIR}/log"
mkdir -p "${LOG_DIR}" # 确保日志目录存在(锁文件依赖此目录)
SLEEP_SECONDS=60
@ -62,6 +63,34 @@ release_lock() {
trap release_lock EXIT
# ==============================================
# Git操作拉取最新代码
# ==============================================
# 功能执行git pull并检查结果
# 参数1. 项目目录 2. 日志函数(可选)
# 返回值0=成功1=失败
git_pull() {
local repo_dir="$1"
local log_func="${2:-echo}" # 允许传入日志函数
if [ ! -d "${repo_dir}/.git" ]; then
$log_func "ERROR: 目录${repo_dir}不是Git仓库无法执行git pull"
return 1
fi
$log_func "开始执行git pull更新代码..."
local pull_output=$(cd "${repo_dir}" && git pull 2>&1)
local exit_code=$?
if [ ${exit_code} -eq 0 ]; then
$log_func "git pull成功${pull_output}"
return 0
else
$log_func "ERROR: git pull失败退出码${exit_code}${pull_output}"
return 1
fi
}
# ==============================================
# 参数解析:区分执行周期(每周/每月)
# ==============================================
@ -105,6 +134,7 @@ fi
# 每月任务
if [ "${PERIOD}" = "--monthly" ]; then
register_spider "pbox" "scrapy crawl pbox -a begin=${COMMON_DATE_PARAM} -a mod='update' "
register_spider "pbox" "scrapy crawl javhd -a mod='update' "
fi
@ -157,6 +187,13 @@ if ! acquire_lock; then
fi
log "成功获取执行锁,开始执行任务"
# 拉取最新代码(关键步骤:失败则终止执行)
if ! git_pull "${GIT_PROJ_DIR}" log; then
log "ERROR: 代码更新失败,终止后续执行"
exit 1
fi
# 第二步:检查注册任务
if [ ${#SPIDER_REGISTRY[@]} -eq 0 ]; then
log "ERROR: 未注册任何${PERIOD#--}Spider脚本终止"