Advertisement
Guest User

Untitled

a guest
Dec 10th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.88 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #########################################
  4. ## SETUP DEDYN READ-ONLY               ##
  5. #########################################
  6.  
  7. echo "WARNING: dedyn.io access is still read/write!"
  8. echo "---------------------------------------------"
  9.  
  10. ###################################################
  11. ## REMOVE DATABASE VOLUMES OF THE NEW CONTAINERS ##
  12. ###################################################
  13.  
  14. echo
  15. echo
  16. echo "WARNING: delete docker container and volumes!"
  17. echo "---------------------------------------------"
  18.  
  19. docker ps | grep desecstack_db
  20. docker volume ls -q | grep desecstack_db
  21.  
  22. echo -n "3.."
  23. sleep 1
  24. echo -n "2.."
  25. sleep 1
  26. echo "1.."
  27. sleep 1
  28.  
  29. docker rm -f $(docker ps -a | grep desecstack_db | egrep -o '^[a-z0-9]+')
  30. docker volume rm $(docker volume ls -q)
  31.  
  32. ########################################
  33. ## PREPARE DOCKER CONTAINERS          ##
  34. ########################################
  35.  
  36. echo
  37. echo
  38. echo "Preparing new docker containers"
  39. echo "-------------------------------"
  40.  
  41. cd /usr/local/src/desec-stack/
  42.  
  43. docker-compose -f docker-compose.yml up -d dbapi
  44. docker-compose -f docker-compose.yml up -d dblord
  45.  
  46. echo "waiting 30s for dbapi, dblord to come up"
  47.  
  48. sleep 30
  49.  
  50. ########################################
  51. ## TRANSFER DATA                      ##
  52. ########################################
  53.  
  54. echo
  55. echo
  56. echo "Transfer data"
  57. echo "--------------------"
  58.  
  59. if [ ! -f ~/.my.cnf ] ; then
  60.   echo "~/.my.cnf with mysqldump password info missing"
  61.   echo "see https://stackoverflow.com/questions/9293042/mysqldump-without-the-password-prompt"
  62.   exit 1
  63. fi
  64.  
  65.  
  66. echo "Transfer pdns database (powerdns tables only, data only)"
  67.  
  68. (
  69.   TABLES="domains records supermasters comments domainmetadata tsigkeys"
  70.   source /usr/local/src/desec-stack/.env
  71.  
  72.   # the key for the pipe is not using the '-t' paramter for docker exec
  73.   mysqldump pdns $TABLES --single-transaction --skip-add-drop-table --no-create-info | docker exec -i desecstack_dblord_1 mysql -u root -p$DESECSTACK_DBLORD_PASSWORD_root pdns
  74.  
  75.   echo
  76.   echo "number of records in new database:"
  77.   for TABLE in $TABLES
  78.   do
  79.     echo "$TABLE:"
  80.     echo "SELECT COUNT(*) FROM $TABLE;" | docker exec -i desecstack_dblord_1 mysql -u root -p$DESECSTACK_DBLORD_PASSWORD_root pdns
  81.     echo
  82.   done
  83. )
  84.  
  85. echo
  86. echo
  87. echo "Transfer API database (including structure)"
  88.  
  89. (
  90.   TABLES="desecapi_domain desecapi_donation desecapi_user"
  91.   source /usr/local/src/desec-stack/.env
  92.  
  93.   # the key for the pipe is not using the '-t' paramter for docker exec
  94.   mysqldump desec --single-transaction | docker exec -i desecstack_dbapi_1 mysql -u root -p$DESECSTACK_DBAPI_PASSWORD_root desec
  95.  
  96.   echo "number of records in new database:"
  97.   for TABLE in $TABLES
  98.   do
  99.     echo "$TABLE:"
  100.     echo "SELECT COUNT(*) FROM $TABLE;" | docker exec -i desecstack_dbapi_1 mysql -u root -p$DESECSTACK_DBAPI_PASSWORD_root desec
  101.     echo
  102.   done
  103.  
  104. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement