Last active
July 23, 2019 16:35
-
-
Save jtwiest/072fdef1808d36293335e1be46872061 to your computer and use it in GitHub Desktop.
Backup and delete emergence site from server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Backup and delete given emergence site | |
# sudo ./delete-site y handle1 handle2 | |
# Configure backup flag | |
backup="y" | |
if [ "$1" == "n" ] || [ "$1" == "y" ]; then | |
backup="$1" | |
else | |
echo "Missing backup param y/n" | |
exit 1; | |
fi | |
echo "Site backup set to: $backup"; | |
# Process each provided handle | |
for handle in "${@:2}" | |
do | |
echo "Found Handle: $handle" | |
site_directory="emergence/sites/$handle" | |
# Verify site handle provided | |
if [ "$site_directory" == 'emergence/sites/' ]; then | |
echo "Missing site directory $handle" | |
exit 1 | |
fi | |
# Verify site directory exists | |
if [ ! -d "/$site_directory" ]; then | |
echo "Invalid site directory $site_directory" | |
exit 1 | |
fi | |
echo "Found Site Directory: $site_directory" | |
# Connect to mysql | |
# @todo make dynamic | |
UNDERSCORE="/usr/local/lib/node_modules/emergence/node_modules/.bin/underscore" | |
MYSQL_SOCKET=/emergence/services/run/mysqld/mysqld.sock | |
MYSQL_USERNAME=root | |
MYSQL_PASSWORD=$(sudo cat /emergence/config.json | $UNDERSCORE extract --outfmt text services.plugins.sql.managerPassword) | |
if [ "$backup" == "y" ]; then | |
# Zip site directory for backup | |
echo Zipping directory: /$site_directory | |
tar -C / -zcf "$handle.tgz" $site_directory | |
# Dump database | |
mysqldump -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" -S "${MYSQL_SOCKET}" "$handle" > "$handle.sql" | |
# Gzip mysqldump | |
gzip "$handle.sql" | |
# Delete uncompressed mysql file | |
rm "$handle.sql" | |
fi | |
# Delete mysql database | |
BACKTICK='`' | |
DATABASENAME="$BACKTICK$handle$BACKTICK" | |
mysql -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" -S "${MYSQL_SOCKET}" -e "DROP DATABASE IF EXISTS $DATABASENAME;" | |
# Delete mysql user | |
mysql -u "${MYSQL_USERNAME}" -p"${MYSQL_PASSWORD}" -S "${MYSQL_SOCKET}" -e "DROP USER IF EXISTS $DATABASENAME@localhost" | |
# Delete site directory | |
echo Deleting /$site_directory | |
rm -rf "/$site_directory" | |
echo "Finished deleting $handle" | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment