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 | 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 "$ACTION" 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" | ... | ... |