Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # ensure right directory
  4. realpath=$( ruby -e "puts File.expand_path(\"$0\")")
  5. cd $(dirname $realpath)/..
  6.  
  7. DBCONFIG=$( ruby -r yaml -e "puts YAML.load_file('config/database.yml')['production'].values_at('adapter','host','port','username','password','database','encoding').join(';')" )
  8. IFS=';' read -a DBCONFIG_ARRAY <<< "$DBCONFIG"
  9.  
  10. ADAPTER=${DBCONFIG_ARRAY[0]}
  11. HOST=${DBCONFIG_ARRAY[1]}
  12. PORT=${DBCONFIG_ARRAY[2]}
  13. USERNAME=${DBCONFIG_ARRAY[3]}
  14. PASSWORD=${DBCONFIG_ARRAY[4]}
  15. DATABASE=${DBCONFIG_ARRAY[5]}
  16. ENCODING=${DBCONFIG_ARRAY[6]}
  17.  
  18. DATE=$( date +%F_%H-%M-%S )
  19. DUMP_FILE_NAME=${ADAPTER}_${DATABASE}_${DATE}
  20. ARCHIVE_FILE_NAME=diaspora_$(hostname)_${DATE}
  21.  
  22. case $ADAPTER in
  23. postgresql)
  24. echo "Running PostgreSQL dump..."
  25. TMP_FILE=$( mktemp )
  26. env PGPASSWORD=$PASSWORD pg_dump -h $HOST -p $PORT -U $USERNAME -E $ENCODING $DATABASE > $TMP_FILE
  27. status=$?
  28. if [ $status -ne 0 ]; then
  29. echo "Error running dump command: $status"
  30. exit $status
  31. fi
  32. gzip -n $TMP_FILE
  33. mv $TMP_FILE.gz $DUMP_FILE_NAME.sql.gz
  34. ;;
  35. *)
  36. echo "Unknown adapter $ADAPTER"
  37. exit 1
  38. esac
  39.  
  40. echo "creating archive $ARCHIVE_FILE_NAME..."
  41. tar -cf $ARCHIVE_FILE_NAME.tar $DUMP_FILE_NAME.sql.gz public/uploads config/diaspora.yml
  42.  
  43. status=$?
  44. if [ $status -eq 0 ]; then
  45. echo "Successfully created archive $ARCHIVE_FILE_NAME."
  46. else
  47. echo "Error $status running tar. Archive wasn't created."
  48. fi
  49.  
  50. unlink $DUMP_FILE_NAME.sql.gz
  51. exit $status
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement