#!/bin/bash

# 설정
SOURCE_USER="root"
SOURCE_PASSWORD="admin01"
SOURCE_DATABASE="proshield"
# 스캔서버가 정책 매칭에 필요한 테이블 전부 복제.
#  - MAIL_POLICY / MAIL_POLICY_CONDITION : 정책/조건
#  - MAIL_POLICY_CONDITION_MAILADDRESS  : selected_user/부서 정책의 '발신자 이메일 목록'(mail_address)
#    → 이게 없으면 스캔서버에서 selected_user/부서 정책이 매칭되지 않음(필수)
TABLES=("MAIL_POLICY_CONDITION" "MAIL_POLICY" "MAIL_POLICY_CONDITION_MAILADDRESS")
DUMP_DIR="/usr/local/apache/htdocs/mailfilter"
TARGET_USER="root"
TARGET_PASSWORD="admin01"
TARGET_DATABASE="proshield"
TARGET_HOSTS=("10.251.2.42" "10.251.2.43" "10.251.2.44")

# 각 테이블 덤프
for TABLE in "${TABLES[@]}"; do
    DUMP_FILE="$DUMP_DIR/dump_$TABLE.sql"
    /usr/local/mysql/bin/mysqldump -u"$SOURCE_USER" -p"$SOURCE_PASSWORD" "$SOURCE_DATABASE" "$TABLE" > "$DUMP_FILE"
    
    if [ $? -ne 0 ]; then
        echo "Error dumping table $TABLE"
        exit 1
    else
        echo "Successfully dumped table $TABLE to $DUMP_FILE"
    fi

    # 각 타겟 서버로 데이터 전송
    for HOST in "${TARGET_HOSTS[@]}"; do
        mysql -h "$HOST" -u "$TARGET_USER" -p"$TARGET_PASSWORD" "$TARGET_DATABASE" < "$DUMP_FILE"
        if [ $? -ne 0 ]; then
            echo "Error transferring $TABLE to $HOST"
        else
            echo "Successfully transferred $TABLE to $HOST"
        fi
    done
done
