Guest User

Untitled

a guest
Mar 1st, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. #!/usr/bin/env sh
  2.  
  3. # args.
  4. USER=$(echo $1 | cut -d @ -f 1);
  5. HOST=$(echo $1 | cut -d @ -f 2);
  6. DBUSER=$2;
  7. DBNAME=$3;
  8.  
  9. function usage {
  10. echo "Usage: `basename $0` SSH_USER@HOST MYSQL_USER MYSQL_DBNAME";
  11. exit 1;
  12. }
  13.  
  14. # Error-checking for options.
  15. if [[ -z $USER ]]; then
  16. echo "SSH user not specified.";
  17. usage;
  18. fi
  19. if [[ -z $HOST ]]; then
  20. echo "Host not specified.";
  21. usage;
  22. fi
  23. if [[ -z $DBUSER ]]; then
  24. echo "MySQL user not specified.";
  25. usage;
  26. fi
  27. if [[ -z $DBNAME ]]; then
  28. echo "Database name not specified.";
  29. usage;
  30. fi
  31. if [[ ! -f ~/.my.cnf ]]; then
  32. echo "Local mysql client credentials must be specified in the file: ~/.my.cnf. The format is something like:
  33.  
  34. [client]
  35. host = localhost
  36. user = root
  37. password = PaSsWoRd
  38. ";
  39. usage;
  40. fi
  41.  
  42. # Download mysql dump.
  43. TMPDUMP=$(mktemp "/tmp/mysqldownload_${DBNAME}_XXXX");
  44. ssh -C $USER@$HOST "mysqldump -v --databases --user=$DBUSER --password $DBNAME" 1> "$TMPDUMP";
  45.  
  46. # Ensure a file was downloaded.
  47. if [[ 0 != $? || ! -s $TMPDUMP ]]; then
  48. echo "Database downloading failed.";
  49. exit 3;
  50. fi
  51.  
  52. # Create local database.
  53. echo "Dropping local database $DBNAME...";
  54. mysql -e "DROP DATABASE IF EXISTS \`$DBNAME\`;";
  55.  
  56. # Download
  57. echo "Loading database dump for $DBNAME...";
  58. mysql < "$TMPDUMP";
  59.  
  60. echo 'Done!';
  61.  
  62. echo "(SQL dump file: $TMPDUMP)";
Add Comment
Please, Sign In to add comment