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