48 lines
1.3 KiB
Bash
48 lines
1.3 KiB
Bash
#!/bin/bash
|
|
TARGET=$1
|
|
|
|
if [ -z "$TARGET" ]; then
|
|
echo "用法: $0 <target>"
|
|
echo "请指定同步目标:"
|
|
echo " doris - 停止 Doris 增量同步定时任务"
|
|
echo " mysql - 停止 MySQL 增量同步定时任务"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$TARGET" != "doris" ] && [ "$TARGET" != "mysql" ]; then
|
|
echo "错误: 请指定目标 (doris 或 mysql)"
|
|
exit 1
|
|
fi
|
|
|
|
WORK_DIR="/usr/local/datax"
|
|
SCRIPT_NAME="run_jobs_inc.sh"
|
|
SCRIPT_PATH="$WORK_DIR/$SCRIPT_NAME"
|
|
|
|
export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
|
|
[ -f /etc/profile ] && . /etc/profile
|
|
[ -f ~/.bash_profile ] && . ~/.bash_profile
|
|
[ -f ~/.profile ] && . ~/.profile
|
|
|
|
echo "正在检查定时任务..."
|
|
# 精确匹配包含脚本路径和参数的行
|
|
EXISTING_JOB=$(crontab -l 2>/dev/null | grep "$SCRIPT_PATH $TARGET")
|
|
|
|
if [ -z "$EXISTING_JOB" ]; then
|
|
echo "提示: 未发现 $TARGET 增量任务,无需停止。"
|
|
exit 0
|
|
fi
|
|
|
|
BACKUP_FILE="/tmp/crontab_backup_$(date +%Y%m%d_%H%M%S).txt"
|
|
crontab -l > "$BACKUP_FILE" 2>/dev/null
|
|
# 删除特定任务
|
|
crontab -l 2>/dev/null | grep -v "$SCRIPT_PATH $TARGET" | crontab -
|
|
|
|
REMAINING_JOB=$(crontab -l 2>/dev/null | grep "$SCRIPT_PATH $TARGET")
|
|
if [ -z "$REMAINING_JOB" ]; then
|
|
echo "✅ $TARGET 增量定时任务已停止"
|
|
crontab -l
|
|
else
|
|
echo "❌ 停止失败,请手动执行: crontab -e"
|
|
exit 1
|
|
fi
|