50 lines
1.4 KiB
Bash
Executable File
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
|
|
|