#!/bin/bash set -e TASK_NAME="$1" SCRIPT_PATH="$2" PROJECT_DIR="/home/ubuntu/zhuiguang-ai" LOG_DIR="$PROJECT_DIR/logs" ENV_FILE="$PROJECT_DIR/.env" if [ -z "$TASK_NAME" ] || [ -z "$SCRIPT_PATH" ]; then echo "用法: $0 " exit 1 fi mkdir -p "$LOG_DIR" LOG_FILE="$LOG_DIR/$TASK_NAME.log" TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') echo "========== $TIMESTAMP 开始执行: $TASK_NAME ==========" >> "$LOG_FILE" if [ -f "$ENV_FILE" ]; then set -a source "$ENV_FILE" set +a fi export PATH="/usr/local/bin:/usr/bin:/bin:$PATH" cd "$PROJECT_DIR" if node "$SCRIPT_PATH" >> "$LOG_FILE" 2>&1; then echo "$(date '+%Y-%m-%d %H:%M:%S') $TASK_NAME 执行成功" >> "$LOG_FILE" else EXIT_CODE=$? echo "$(date '+%Y-%m-%d %H:%M:%S') $TASK_NAME 执行失败 (exit code: $EXIT_CODE)" >> "$LOG_FILE" exit $EXIT_CODE fi echo "" >> "$LOG_FILE"