#!/bin/bash # ===== 설정값 ===== DOCKER_CONTAINER="sam-mysql-1" DOCKER_DB="chandj" DOCKER_USER="root" DOCKER_PASS="root" REMOTE_USER="pro" REMOTE_HOST="114.203.209.83" REMOTE_DB="chandj" CHARSET="utf8mb4" # ===== 인자 체크 ===== if [ -z "$1" ]; then echo "사용법: $0 table1 또는 $0 table1,table2,table3" exit 1 fi # 콤마 기준으로 테이블 분리 IFS=',' read -ra TABLES <<< "$1" for TABLE in "${TABLES[@]}"; do SQL_FILE="${TABLE}.sql" echo "▶ 테이블 덤프: $TABLE" docker exec -i "$DOCKER_CONTAINER" mysqldump \ -u"$DOCKER_USER" -p"$DOCKER_PASS" \ --default-character-set="$CHARSET" \ --add-drop-table \ "$DOCKER_DB" "$TABLE" > "$SQL_FILE" if [ $? -ne 0 ]; then echo "❌ 덤프 실패: $TABLE" exit 1 fi echo "▶ 서버로 복사: $SQL_FILE" scp "$SQL_FILE" "$REMOTE_USER@$REMOTE_HOST:~/" if [ $? -ne 0 ]; then echo "❌ SCP 실패: $SQL_FILE" exit 1 fi echo "▶ 서버 DB 적용: $TABLE" ssh "$REMOTE_USER@$REMOTE_HOST" \ "mysql -u $REMOTE_USER -p $REMOTE_DB < ~/$SQL_FILE" if [ $? -ne 0 ]; then echo "❌ DB 적용 실패: $TABLE" exit 1 fi echo "✅ 완료: $TABLE" echo "--------------------------------------" done echo "🎉 모든 테이블 처리 완료"