Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env sh
- # args.
- USER=$(echo $1 | cut -d @ -f 1);
- HOST=$(echo $1 | cut -d @ -f 2);
- DBUSER=$2;
- DBNAME=$3;
- function usage {
- echo "Usage: `basename $0` SSH_USER@HOST MYSQL_USER MYSQL_DBNAME";
- exit 1;
- }
- # Error-checking for options.
- if [[ -z $USER ]]; then
- echo "SSH user not specified.";
- usage;
- fi
- if [[ -z $HOST ]]; then
- echo "Host not specified.";
- usage;
- fi
- if [[ -z $DBUSER ]]; then
- echo "MySQL user not specified.";
- usage;
- fi
- if [[ -z $DBNAME ]]; then
- echo "Database name not specified.";
- usage;
- fi
- if [[ ! -f ~/.my.cnf ]]; then
- echo "Local mysql client credentials must be specified in the file: ~/.my.cnf. The format is something like:
- [client]
- host = localhost
- user = root
- password = PaSsWoRd
- ";
- usage;
- fi
- # Download mysql dump.
- TMPDUMP=$(mktemp "/tmp/mysqldownload_${DBNAME}_XXXX");
- ssh -C $USER@$HOST "mysqldump -v --databases --user=$DBUSER --password $DBNAME" 1> "$TMPDUMP";
- # Ensure a file was downloaded.
- if [[ 0 != $? || ! -s $TMPDUMP ]]; then
- echo "Database downloading failed.";
- exit 3;
- fi
- # Create local database.
- echo "Dropping local database $DBNAME...";
- mysql -e "DROP DATABASE IF EXISTS \`$DBNAME\`;";
- # Download
- echo "Loading database dump for $DBNAME...";
- mysql < "$TMPDUMP";
- echo 'Done!';
- echo "(SQL dump file: $TMPDUMP)";
Add Comment
Please, Sign In to add comment