Files
hzdyjs/超星数据移植与定时同步/run_script.sh
T
2025-11-13 18:07:07 +08:00

50 lines
1.4 KiB
Bash
Executable File

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