#!/bin/bash # 超星数据同步脚本启动器 # 用于crontab定时任务执行 # 获取脚本所在目录的绝对路径 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" || exit 1 # Python解释器路径(根据实际情况修改) # 如果使用虚拟环境,请修改为虚拟环境的Python路径 PYTHON_CMD="python3" # 日志目录 LOG_DIR="$SCRIPT_DIR/logs" mkdir -p "$LOG_DIR" # 获取脚本名称(不含路径和扩展名) SCRIPT_NAME="$1" if [ -z "$SCRIPT_NAME" ]; then echo "错误: 未指定脚本名称" exit 1 fi # 日志文件(按日期和脚本名) LOG_FILE="$LOG_DIR/${SCRIPT_NAME}_$(date +%Y%m%d).log" ERROR_LOG="$LOG_DIR/${SCRIPT_NAME}_error_$(date +%Y%m%d).log" # 执行Python脚本 echo "==========================================" >> "$LOG_FILE" echo "执行时间: $(date '+%Y-%m-%d %H:%M:%S')" >> "$LOG_FILE" echo "脚本: $SCRIPT_NAME.py" >> "$LOG_FILE" echo "==========================================" >> "$LOG_FILE" # 执行脚本,同时输出到标准日志和错误日志 $PYTHON_CMD "$SCRIPT_DIR/$SCRIPT_NAME.py" >> "$LOG_FILE" 2>> "$ERROR_LOG" # 检查执行结果 EXIT_CODE=$? if [ $EXIT_CODE -eq 0 ]; then echo "执行成功: $(date '+%Y-%m-%d %H:%M:%S')" >> "$LOG_FILE" else echo "执行失败 (退出码: $EXIT_CODE): $(date '+%Y-%m-%d %H:%M:%S')" >> "$LOG_FILE" echo "错误详情请查看: $ERROR_LOG" >> "$LOG_FILE" fi echo "" >> "$LOG_FILE" exit $EXIT_CODE