Commit ee392a04022857f1668cf66330f8e532037a27bc
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,6 +204,32 @@ case "$ACTION" in | ||
204 | done | 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 | script) | 233 | script) |
208 | ARG_SCRIPT_NAME=$2 | 234 | ARG_SCRIPT_NAME=$2 |
209 | if [ -z $ARG_SCRIPT_NAME ]; then | 235 | if [ -z $ARG_SCRIPT_NAME ]; then |
@@ -237,6 +263,8 @@ case "$ACTION" in | @@ -237,6 +263,8 @@ case "$ACTION" in | ||
237 | echo " cmd <command> : Execute <command> on hosts" | 263 | echo " cmd <command> : Execute <command> on hosts" |
238 | echo " db-backup [filename] : Perform a database backup" | 264 | echo " db-backup [filename] : Perform a database backup" |
239 | echo " db-restore <filename> : Restore a database backup" | 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 | echo " db-sql <filename> : Copy <filename> to hosts and run with mysql client" | 268 | echo " db-sql <filename> : Copy <filename> to hosts and run with mysql client" |
241 | echo " script <filename> : Copy <filename> to hosts and execute it" | 269 | echo " script <filename> : Copy <filename> to hosts and execute it" |
242 | echo " update : Update code using git pull" | 270 | echo " update : Update code using git pull" |