2020年5月19日火曜日

DBの複製・DBのCreateを行うShell

参照先:


DB(soe_admin)というDBを複数して、複数のDBにインポートするshellです。


イメージ:
[RDS:1] 
①DBをdumpする
②soe_admin > clients に必要な情報を書き込む

[RDS:2] 
①DBのインポートを行う。


1以下のshellを作成する
=============================
#!/bin/bash


#Dump only
HOSTNAME="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="pass"
dump_db="soe_testcase001"

#Import only
HOSTNAME2="127.0.0.1"
PORT2="3306"
USERNAME2="root"
PASSWORD2="pass"

#Table Write only
MYSQL_SCHEMA="soe_admin"
VALUE=`echo ${QUERY} | ${CMD_MYSQL}`
CMD_MYSQL="mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} --show-warnings $MYSQL_SCHEMA"

mysqldump -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} soe_testcase001 > soe_dump.sql


for i in `cat ./test.txt`
do
  cp soe_dump.sql $i
  create="create database if not exists $i;"  
  mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${create}"
  mysql -h${HOSTNAME2} -P${PORT2} -u${USERNAME2} -p${PASSWORD2} $i < $i
  ${CMD_MYSQL} <<EOF
  INSERT INTO clients (client_cd, resq_client_cd, client_dbname, db_type, description, dropped_flag, created_datetime, modified_datetime, deleted_flag, dbhost) VALUES ("$i", " ", "$i", " ", " ", " ", " ", " ", " ", "$HOSTNAME")
EOF
done

================================


2)for文には、test.txtというファイルを見て、実行してくれる

2)test.txtというファイルを作成して、新規DBリストを記載するので
必要な分だけDB名を書き込んでおくこと!

例:

0 件のコメント:

コメントを投稿

php log(ECS ログ出力)

# PHPエラーログの設定 ENV PHP_INI_DIR /usr/local/etc/php RUN { \ echo 'log_errors = On' ; \ echo 'error_log = /proc/self/...