'commit'
This commit is contained in:
@@ -7,12 +7,17 @@
|
||||
# ==========================================
|
||||
|
||||
# 1. 基础配置
|
||||
# 假设您将整个文件夹上传到了 /usr/local/datax
|
||||
TARGET=$1
|
||||
if [ "$TARGET" != "doris" ] && [ "$TARGET" != "mysql" ]; then
|
||||
echo "使用方法: $0 [doris|mysql]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
WORK_DIR="/usr/local/datax"
|
||||
SCRIPT_NAME="run_jobs_inc.sh"
|
||||
SCRIPT_PATH="$WORK_DIR/$SCRIPT_NAME"
|
||||
# 日志存放位置,建议单独放在 logs 目录
|
||||
LOG_FILE="$WORK_DIR/logs/datax_inc_cron.log"
|
||||
# 日志存放位置
|
||||
LOG_FILE="$WORK_DIR/logs/datax_inc_${TARGET}_cron.log"
|
||||
|
||||
# 2. 检查环境
|
||||
echo "正在检查环境..."
|
||||
@@ -42,13 +47,11 @@ echo "正在赋予脚本执行权限..."
|
||||
chmod +x "$SCRIPT_PATH"
|
||||
|
||||
# 4. 配置 Crontab
|
||||
# 任务定义: 每10分钟执行一次 (*/10)
|
||||
# >> $LOG_FILE 2>&1 : 将标准输出和错误输出都追加写入日志文件
|
||||
CRON_CMD="*/10 * * * * /bin/bash $SCRIPT_PATH >> $LOG_FILE 2>&1"
|
||||
# 任务定义: 每10分钟执行一次
|
||||
CRON_CMD="*/10 * * * * /bin/bash $SCRIPT_PATH $TARGET >> $LOG_FILE 2>&1"
|
||||
|
||||
# 检查任务是否已存在 (避免重复添加)
|
||||
# 使用 grep 查找包含脚本路径的行
|
||||
EXISTING_JOB=$(crontab -l 2>/dev/null | grep "$SCRIPT_PATH")
|
||||
# 检查任务是否已存在 (使用脚本路径+目标参数来匹配)
|
||||
EXISTING_JOB=$(crontab -l 2>/dev/null | grep "$SCRIPT_PATH $TARGET")
|
||||
|
||||
if [ -n "$EXISTING_JOB" ]; then
|
||||
echo "警告: 检测到该脚本的定时任务已存在:"
|
||||
@@ -61,9 +64,8 @@ if [ -n "$EXISTING_JOB" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 移除旧任务 (通过 grep -v 反向过滤掉包含脚本路径的行)
|
||||
# 注意: 这会保留其他不相关的定时任务
|
||||
crontab -l 2>/dev/null | grep -v "$SCRIPT_PATH" | crontab -
|
||||
# 移除旧任务
|
||||
crontab -l 2>/dev/null | grep -v "$SCRIPT_PATH $TARGET" | crontab -
|
||||
echo "旧任务已移除"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user