40 lines
871 B
Bash
40 lines
871 B
Bash
#!/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 <TASK_NAME> <SCRIPT_PATH>"
|
|
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" |