Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #set web root location
- WR=/var/www/html/
- #set mysql settings
- MQLUSER=backup
- MQLPASS=xxxx
- MQLDB=mysql-db-name
- #set GPG password
- GPGPASS=your-gpg-pass
- #set BB bucket
- BBBUCKET=bb-bucket-name
- #set path to backup
- PATH1=/path/to/backups
- #set file name
- FILENAME1=mysql-`date +%s`.sql
- WEBROOT1=webroot-`date +%s`.tar.gz
- NGINX1=nginx-`date +%s`.tar.gz
- #set path+file name
- FILENAME=$PATH1/$FILENAME1
- WEBROOT=$PATH1/$WEBROOT1
- NGINX=$PATH1/$NGINX1
- #stop nginx
- systemctl stop nginx
- echo "nginx stopped"
- #compress webroot to .tar.gz
- tar -zcf $WEBROOT $WR
- echo "webroot compressed to .tar.gz"
- #take nginx config backup
- tar -zcf $NGINX /etc/nginx/
- echo "nginx configs compressed to .tar.gz"
- #take mariadb backup
- mysqldump --user=$MQLUSER --password=$MQLPASS > $FILENAME $MQLDB
- echo "mariadb database backup taken"
- #start nginx
- systemctl start nginx
- echo "nginx started back up"
- #compress mariadb backup to .tar.gz
- tar -zcf $FILENAME.tar.gz $FILENAME
- echo "database compressed to .tar.gz"
- #delete .sql file
- rm $FILENAME
- echo ".sql file deleted"
- #encrypt webroot compressed file symmetrically using gpg
- gpg --yes --batch --passphrase=$GPGPASS -c -o $WEBROOT.gpg $WEBROOT
- echo "webroot encrypted"
- #delete webroot compressed file
- rm $WEBROOT
- echo "webroot compressed file deleted"
- #encrypt db backup compressed file symmetrically using gpg
- gpg --yes --batch --passphrase=$GPGPASS -c -o $FILENAME.tar.gz.gpg $FILENAME.tar.gz
- echo "db backup encrypted"
- #delete db backup compressed file
- rm $FILENAME.tar.gz
- echo "db backup compressed file deleted"
- #encrypt nginx compressed file symmetrically using gpg
- gpg --yes --batch --passphrase=$GPGPASS -c -o $NGINX.gpg $NGINX
- echo "nginx encrypted"
- #delete nginx compressed file
- rm $NGINX
- echo "nginx compressed file deleted"
- #sha1sum calculation
- #calculate cheksum for nginx
- SHANGX=`sha1sum $NGINX.gpg | awk '{print $1}'`
- #calculate cheksum for webroot
- SHAWR=`sha1sum $WEBROOT.gpg | awk '{print $1}'`
- #calculate cheksum for mysqldb
- SHAMQL=`sha1sum $FILENAME.tar.gz.gpg | awk '{print $1}'`
- set -x #echo on
- cd $PATH1/ #change directory to path
- #things to upload to backblaze
- #upload db backup to BackBlaze B2
- b2 upload_file --sha1 $SHAMQL $BBBUCKET $FILENAME1.tar.gz.gpg mysql/$FILENAME1.tar.gz.gpg
- echo "encrypted db backup uploaded to BackBlaze B2 bucket:$BBBUCKET filename:$FILENAME1.tar.gz.gpg folder:mysql sha1sum:$SHAMQL"
- #upload webroot backupto BackBlaze B2
- b2 upload_file --sha1 $SHAWR $BBBUCKET $WEBROOT1.gpg webroot/$WEBROOT1.gpg
- echo "encrypted webroot backup uploaded to BackBlaze B2 bucket:$BBBUCKET filename:$WEBROOT1.gpg folder:webroot sha1sum:$SHAWR"
- #upload nginx backup to BackBlaze B2
- b2 upload_file --sha1 $SHANGX $BBBUCKET $NGINX1.gpg nginx/$NGINX1.gpg
- echo "encrypted nginx backup uploaded to BackBlaze B2 bucket:$BBBUCKET filename:$NGINX1.gpg folder:nginx sha1sum:$SHANGX"
- set +x #echo off
- #delete files
- rm $FILENAME.tar.gz.gpg
- echo "db encrypted backup $FILENAME1.tar.gz.gpg deleted from local machine"
- rm $WEBROOT.gpg
- echo "webroot encrypted backup $WEBROOT1.gpg deleted from local machine"
- rm $NGINX.gpg
- echo "nginx encrypted backup $NGINX1.gpg deleted from local machine"
Add Comment
Please, Sign In to add comment