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