Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # ensure right directory
- realpath=$( ruby -e "puts File.expand_path(\"$0\")")
- cd $(dirname $realpath)/..
- DBCONFIG=$( ruby -r yaml -e "puts YAML.load_file('config/database.yml')['production'].values_at('adapter','host','port','username','password','database','encoding').join(';')" )
- IFS=';' read -a DBCONFIG_ARRAY <<< "$DBCONFIG"
- ADAPTER=${DBCONFIG_ARRAY[0]}
- HOST=${DBCONFIG_ARRAY[1]}
- PORT=${DBCONFIG_ARRAY[2]}
- USERNAME=${DBCONFIG_ARRAY[3]}
- PASSWORD=${DBCONFIG_ARRAY[4]}
- DATABASE=${DBCONFIG_ARRAY[5]}
- ENCODING=${DBCONFIG_ARRAY[6]}
- DATE=$( date +%F_%H-%M-%S )
- DUMP_FILE_NAME=${ADAPTER}_${DATABASE}_${DATE}
- ARCHIVE_FILE_NAME=diaspora_$(hostname)_${DATE}
- case $ADAPTER in
- postgresql)
- echo "Running PostgreSQL dump..."
- TMP_FILE=$( mktemp )
- env PGPASSWORD=$PASSWORD pg_dump -h $HOST -p $PORT -U $USERNAME -E $ENCODING $DATABASE > $TMP_FILE
- status=$?
- if [ $status -ne 0 ]; then
- echo "Error running dump command: $status"
- exit $status
- fi
- gzip -n $TMP_FILE
- mv $TMP_FILE.gz $DUMP_FILE_NAME.sql.gz
- ;;
- *)
- echo "Unknown adapter $ADAPTER"
- exit 1
- esac
- echo "creating archive $ARCHIVE_FILE_NAME..."
- tar -cf $ARCHIVE_FILE_NAME.tar $DUMP_FILE_NAME.sql.gz public/uploads config/diaspora.yml
- status=$?
- if [ $status -eq 0 ]; then
- echo "Successfully created archive $ARCHIVE_FILE_NAME."
- else
- echo "Error $status running tar. Archive wasn't created."
- fi
- unlink $DUMP_FILE_NAME.sql.gz
- exit $status
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement