Last active
May 28, 2018 12:16
-
-
Save hitenpratap/21c9e9db992409a3104b64cb07dab92e to your computer and use it in GitHub Desktop.
Take Backup of folders (e.g.. Tomcat, MySQL and MongoDB etc.) to Azure Storage
This file contains 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 | |
AZURE_STORAGE_CONNECTION_STRING="" | |
FOLDER_NAME="data_"$(date +'%d-%m-%Y-%H-%M-%S') | |
MYSQL_USER_NAME="root" | |
MYSQL_USER_PASSWORD="" | |
MYSQL_DB_NAME_ARRAY=() | |
MONGO_DB_NAME_ARRAY=() | |
FOLDER_BACKUP_ARRAY=() | |
AZURE_STORAGE_CONTAINER_NAME="" | |
AZURE_BLOB_NAME="full_backup_"$(date +'%d-%m-%Y')".zip" | |
cd /mnt/daily_backup | |
rm -rf data_*.zip | |
mkdir -p "$FOLDER_NAME" | |
cd "$FOLDER_NAME" | |
# Backs up apache folder | |
zip -r apache.zip /etc/apache2 | |
# Backs up war file from tomcat | |
cp /var/lib/tomcat7/webapps/ROOT.war ROOT.war | |
# Backs up mysql database | |
mkdir mysql_dump | |
cd mysql_dump | |
for i in ${MYSQL_DB_NAME_ARRAY[@]}; do | |
echo "Backing UP $i mysql DB *************" | |
mysqldump -u"$MYSQL_USER_NAME" -p"$MYSQL_USER_PASSWORD" "$i" > "$i".sql | |
done | |
# Backs up mongo database | |
cd .. | |
mkdir mongo_dump | |
cd mongo_dump | |
for i in ${MONGO_DB_NAME_ARRAY[@]}; do | |
echo "Backing UP $i mongo DB *************" | |
mongodump -d "$i" -o . | |
done | |
# Makes zip of folders | |
cd .. | |
mkdir folder_backup | |
cd folder_backup | |
for i in ${FOLDER_BACKUP_ARRAY[@]}; do | |
echo "$i" | |
zip -r "${i//\//_}".zip "$i" | |
done | |
# Makes zip of main foolder and remove the original folder | |
cd .. | |
cd .. | |
zip -r "$FOLDER_NAME".zip "$FOLDER_NAME" | |
rm -rf "$FOLDER_NAME" | |
# Put the zipped folder to AZURE Storage | |
az storage blob upload --connection-string "$AZURE_STORAGE_CONNECTION_STRING" -f /mnt/daily_backup/"$FOLDER_NAME".zip -c "$AZURE_STORAGE_CONTAINER_NAME" -n "$AZURE_BLOB_NAME" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment