Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- source "$HOME/bin/bash_ui_lib.sh"
- optspec="a:b:m:s:e:"
- while getopts "$optspec" optchar; do
- case $optchar in
- a|--origin) # originating db server hostname
- O_DB_SERVER="$OPTARG" ;;
- b|--destination) # destination db server hostname
- D_DB_SERVER="$OPTARG" ;;
- m|--master) # originating database name
- O_DB="$OPTARG" ;;
- s|--slave) # destination database name
- D_DB="$OPTARG" ;;
- e) # extra options to pass to mysql
- O_EXTRA="$OPTARG" ;;
- esac
- done
- if [ -z $O_DB_SERVER ]; then
- die "Origination database server hostname is required"
- fi
- if [ -z $D_DB_SERVER ]; then
- die "Destination database server hostname is required"
- fi
- if [ -z $O_DB ]; then
- die "Origination database name is required"
- fi
- if [ -z $D_DB ]; then
- die "Destination database name is required"
- fi
- bot "Sync from $O_DB on $O_DB_SERVER to $D_DB on $D_DB_SERVER"
- date
- running "drop destination database if it exists"
- time ssh $D_DB_SERVER "mysql -u root -e \"DROP DATABASE $D_DB;\""
- running "sync database structure"
- time ssh -A $O_DB_SERVER "mysqldump -u root --no-data --databases $O_DB | sed -e \"s/$O_DB/$D_DB/\"" | ssh $D_DB_SERVER "cat - | mysql -u root"
- running "sync database data"
- time ssh -A $O_DB_SERVER "mysqldump -u root --databases $O_DB --no-create-info $O_EXTRA | sed -e \"s/$O_DB/$D_DB/\"" | ssh $D_DB_SERVER "cat - | mysql -u root"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement