2019-05-27 10:33:22 -07:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
ARCHIVE_SUFFIX=".tar.gz"
|
|
|
|
|
|
|
|
|
|
# Check if a backup file was specified
|
|
|
|
|
if [ -n "${1}" ]; then
|
2021-03-17 17:54:09 -06:00
|
|
|
BACKUP_PATH="${1}"
|
|
|
|
|
# Check if the backup file exists as a full path
|
|
|
|
|
if [ ! -f "${BACKUP_PATH}" ]; then
|
|
|
|
|
# Check if the backup is valid by adding the archive suffix
|
|
|
|
|
if [ -f "${BACKUP_PATH}${ARCHIVE_SUFFIX}" ]; then
|
|
|
|
|
# The backup file is valid after adding the archive suffix
|
|
|
|
|
BACKUP_PATH="${BACKUP_PATH}${ARCHIVE_SUFFIX}"
|
|
|
|
|
else
|
|
|
|
|
# Prepend the default backup path
|
|
|
|
|
BACKUP_PATH="$(dirname $(dirname $(readlink -f "$0")))/backups/${BACKUP_PATH}"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
# Check for the backup file (again)
|
|
|
|
|
if [ ! -f "${BACKUP_PATH}" ]; then
|
|
|
|
|
# Append the default archive suffix
|
|
|
|
|
BACKUP_PATH="${BACKUP_PATH}${ARCHIVE_SUFFIX}"
|
|
|
|
|
fi
|
|
|
|
|
# Check for the backup file (last time)
|
|
|
|
|
if [ -f "${BACKUP_PATH}" ]; then
|
|
|
|
|
# Extract the backup archive
|
|
|
|
|
DIR_NAME=$(dirname "${BACKUP_PATH}")
|
|
|
|
|
tar -zxvf "${BACKUP_PATH}" -C "${DIR_NAME}"
|
|
|
|
|
# Check if this is a valid backup archive now that the files have been extracted
|
|
|
|
|
if [ -d ${BACKUP_PATH%"${ARCHIVE_SUFFIX}"}/explorerdb ]; then
|
|
|
|
|
BACKUP_DIR=${BACKUP_PATH%"${ARCHIVE_SUFFIX}"}
|
|
|
|
|
# Erase entire database
|
2019-05-27 10:33:22 -07:00
|
|
|
sudo mongo <<EOF
|
|
|
|
|
use explorerdb
|
|
|
|
|
db.addresses.drop()
|
2020-11-21 20:23:58 -07:00
|
|
|
db.addresstxes.drop()
|
2019-05-27 10:33:22 -07:00
|
|
|
db.coinstats.drop()
|
|
|
|
|
db.heavies.drop()
|
|
|
|
|
db.markets.drop()
|
2020-12-30 18:22:02 -07:00
|
|
|
db.masternodes.drop()
|
2019-05-27 10:33:22 -07:00
|
|
|
db.peers.drop()
|
|
|
|
|
db.richlists.drop()
|
|
|
|
|
db.txes.drop()
|
|
|
|
|
exit
|
|
|
|
|
EOF
|
2021-03-17 17:54:09 -06:00
|
|
|
# Restore mongo database from the backup directory
|
|
|
|
|
eval "mongorestore -d explorerdb ${BACKUP_DIR}/explorerdb"
|
|
|
|
|
# Remove the backup directory
|
|
|
|
|
rm -rf "${BACKUP_DIR}"
|
|
|
|
|
# Finished msg
|
|
|
|
|
echo "Backup restored from ${BACKUP_PATH} successfully."
|
|
|
|
|
else
|
|
|
|
|
# Backup file is not a valid mongo database backup
|
|
|
|
|
echo "${BACKUP_PATH} is not a valid backup file."
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
# Backup does not exist
|
|
|
|
|
echo "${BACKUP_PATH} cannot be found."
|
|
|
|
|
fi
|
2019-05-27 10:33:22 -07:00
|
|
|
else
|
2021-03-17 17:54:09 -06:00
|
|
|
echo "no backup file specified."
|
2019-05-27 10:33:22 -07:00
|
|
|
fi
|