Skip to content

Instantly share code, notes, and snippets.

@hitenpratap
Last active May 28, 2018 12:16
Show Gist options
  • Save hitenpratap/21c9e9db992409a3104b64cb07dab92e to your computer and use it in GitHub Desktop.
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
#!/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