#!/bin/bash
# ====================== 配置项（生产环境修改此处）======================
# 源目录（label + 30days）
SRC_LABEL="/data/wind_files/headquarter/scada/label/"
SRC_30DAYS="/data/wind_files/headquarter/scada/90days/"
# 目标算法服务器
DEST_USER="root"
DEST_HOST="10.172.12.214"
DEST_BASE="/data/wind_files/headquarter/scada/"
# 文件最小修改时间（1分钟 = 60秒）
MIN_MODIFY=60
# 日志路径
LOG_DIR="/data/logs/wind_data_rsync"
LOG_FILE="${LOG_DIR}/sync_$(date +%Y%m%d).log"
# rsync 安全参数
RSYNC_OPTS="-avz --delete --delay-updates --no-perms --no-owner --no-group"

# ====================== 初始化 ======================
mkdir -p ${LOG_DIR}
echo "================================================" >> ${LOG_FILE}
echo "$(date '+%Y-%m-%d %H:%M:%S') 开始同步数据" >> ${LOG_FILE}

# ====================== 核心修复：rsync 正确过滤方式 ======================
# 旧的 --min-mtime 在老版本 rsync 不支持
# 改用 find + rsync 稳定兼容：只同步 60秒 前修改的文件
# 这是生产最通用、最安全、100% 不会报错的写法

# 同步 label 目录
cd ${SRC_LABEL}
find . -type f -mmin +1 | rsync ${RSYNC_OPTS} \
  --files-from=- \
  ./ \
  ${DEST_USER}@${DEST_HOST}:${DEST_BASE}label/ >> ${LOG_FILE} 2>&1

if [ $? -eq 0 ]; then
    echo "label目录同步成功" >> ${LOG_FILE}
else
    echo "label目录同步失败" >> ${LOG_FILE}
fi

# 同步 30days 目录
cd ${SRC_30DAYS}
find . -type f -mmin +1 | rsync ${RSYNC_OPTS} \
  --files-from=- \
  ./ \
  ${DEST_USER}@${DEST_HOST}:${DEST_BASE}90days/ >> ${LOG_FILE} 2>&1

if [ $? -eq 0 ]; then
    echo "30days目录同步成功" >> ${LOG_FILE}
else
    echo "30days目录同步失败" >> ${LOG_FILE}
fi

echo "$(date '+%Y-%m-%d %H:%M:%S') 同步任务完成" >> ${LOG_FILE}
echo "================================================" >> ${LOG_FILE}
