Guest User

Untitled

a guest
Mar 20th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. # /bin/bash
  2.  
  3. echo "Backup script is running"
  4.  
  5. PG_DOCKER_CONTAINER="postgres"
  6. PG_USERNAME="postgres"
  7. DATABASE="default_database"
  8. HOMEPATH=$(cd ~ && pwd)
  9.  
  10. COLOR_NORMAL="\033[0m"
  11. COLOR_GREEN="\033[0;32m"
  12.  
  13. echo "Database ${COLOR_GREEN}${DATABASE}${COLOR_NORMAL} will be backed up. Press ENTER or type new database name:"
  14.  
  15. read INPUT_DATABASE < "${1:-/dev/stdin}"
  16.  
  17. if (($(printf "%s" "$INPUT_DATABASE" | wc -c) > 0))
  18. then
  19. DATABASE=$INPUT_DATABASE
  20. echo "Changing database to ${COLOR_GREEN}${DATABASE}${COLOR_NORMAL}"
  21. fi
  22.  
  23. if [ "$(docker exec $PG_DOCKER_CONTAINER bash -c "psql -U $PG_USERNAME -tAc \"SELECT 1 FROM pg_database WHERE datname='$DATABASE'\"")" = '1' ]
  24. then
  25. NAME="${DATABASE}_$(date +"%Y-%m-%d_%H-%M")"
  26. echo "Backup in progress"
  27. else
  28. echo "No database $DATABASE found"
  29. fi
  30.  
  31. docker exec $PG_DOCKER_CONTAINER bash -c "pg_dump -U $PG_USERNAME $DATABASE > /tmp/$NAME.sql" && \
  32. docker cp $PG_DOCKER_CONTAINER:/tmp/$NAME.sql $HOMEPATH/ && \
  33. tar czf $NAME.sql.tar.gz $NAME.sql && \
  34. rm $NAME.sql && \
  35. docker exec $PG_DOCKER_CONTAINER bash -c "rm /tmp/$NAME.sql"
  36.  
  37. echo "Backup placed at $HOMEPATH/$NAME.sql.tar.gz"
Add Comment
Please, Sign In to add comment