Commit ee392a04022857f1668cf66330f8e532037a27bc

Authored by lucvic
1 parent e0805851

Added db-transfer

Showing 1 changed file with 28 additions and 0 deletions
cluster-manager.sh
... ... @@ -204,6 +204,32 @@ case "$ACTION" in
204 204 done
205 205 ;;
206 206  
  207 + db-transfer)
  208 + ARG_TABLES=$2
  209 + ARG_HOST_FROM=$3
  210 + IFS=',' read -a ARG_HOST_TO <<< "$4"
  211 +
  212 + if [ -z ARG_TABLES ] || [ -z $ARG_HOST_FROM ]; then
  213 + echo "ERROR: Please specify at least the table(s) and the source host."
  214 + echo "Examples"
  215 + echo " $0 $ACTION table sourcehost"
  216 + echo " $0 $ACTION table1,table2 sourcehost destinationhost"
  217 + echo " $0 $ACTION table sourcehost destinationhost1,destinationhost2,destinationhost3"
  218 + exit 1
  219 + fi
  220 +
  221 + TABLES=$(echo "$ARG_TABLES" | tr , " ")
  222 + ARG_BACKUP_NAME="TEMP-$(date +%Y%m%d-%H%M%S).sql"
  223 + host_exec_cmd ${ARG_HOST_FROM} "mysqldump -u${MYSQL_USER} -p${MYSQL_PASS} --add-drop-table ${MYSQL_DB} ${TABLES} > ${ARG_BACKUP_NAME}"
  224 + host_recv_file ${ARG_HOST_FROM} ${ARG_BACKUP_NAME} LOCAL-${ARG_BACKUP_NAME}
  225 + host_exec_cmd ${ARG_HOST_FROM} "rm ${ARG_BACKUP_NAME}"
  226 + for HOST_TO in ${ARG_HOST_TO[@]}; do
  227 + host_send_file ${HOST_TO} LOCAL-${ARG_BACKUP_NAME} ${HOST_TO}-${ARG_BACKUP_NAME}
  228 + host_exec_cmd ${HOST_TO} "mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} < ${HOST_TO}-${ARG_BACKUP_NAME}; rm ${HOST_TO}-${ARG_BACKUP_NAME}"
  229 + done
  230 + rm LOCAL-${ARG_BACKUP_NAME}
  231 + ;;
  232 +
207 233 script)
208 234 ARG_SCRIPT_NAME=$2
209 235 if [ -z $ARG_SCRIPT_NAME ]; then
... ... @@ -237,6 +263,8 @@ case &quot;$ACTION&quot; in
237 263 echo " cmd <command> : Execute <command> on hosts"
238 264 echo " db-backup [filename] : Perform a database backup"
239 265 echo " db-restore <filename> : Restore a database backup"
  266 + echo " db-transfer table1,table2 srchost dsthost1,dsthost2"
  267 + echo " : Copy table(s) from srchost to desthost(s)"
240 268 echo " db-sql <filename> : Copy <filename> to hosts and run with mysql client"
241 269 echo " script <filename> : Copy <filename> to hosts and execute it"
242 270 echo " update : Update code using git pull"
... ...