Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- set -e
- # VARIABLES
- current_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
- project=`uname -n`
- backup_dir=`mktemp -d "${TMPDIR:-/tmp}"/${project}.backup.XXXX`
- today=`date +'%Y-%m-%d'`
- at="at `echo $(date)`"
- backup_log=/var/log/backup-website.log
- docroot=/var/www/<yourfolder>
- apache_settings=/etc/apache2
- server_logs=/var/log/apache2
- bucket=<yourbucket>
- dbhost=`cat ${docroot}/wp-config.php | grep -ns "^define('DB_HOST'" | cut -d \' -f 4`
- dbuser=`cat ${docroot}/wp-config.php | grep -ns "^define('DB_USER'" | cut -d \' -f 4`
- dbname=`cat ${docroot}/wp-config.php | grep -ns "^define('DB_NAME'" | cut -d \' -f 4`
- dbpass=`cat ${docroot}/wp-config.php | grep -ns "^define('DB_PASSWORD'" | cut -d \' -f 4`
- exec &>> ${backup_log}
- echo "started backup ${at}"
- # BACKUP DIRECTORY
- cd ${backup_dir}
- # BACKUP - DATABASE
- echo "creating mysqldump ${at}"
- mysqldump -h ${dbhost} -u ${dbuser} -p${dbpass} ${dbname} | gzip -9 -c > ${today}-${project}-${dbname}.sql.gz
- echo "backed up database `ls -i *.sql.gz` ${at}"
- # BACKUP WWW FILES
- tar --exclude='.git' -czvf ${today}-${project}-www.tar.gz ${docroot}
- # BACKUP APACHE SETTINGS
- tar --exclude='.git' -czvf ${today}-${project}-apache.tar.gz ${apache_settings}
- # BACKUP APACHE LOGS
- mkdir ${backup_dir}/logs && cp -r --parents ${server_logs} ${backup_dir}/logs
- tar -czvf ${today}-${project}-logs.tar.gz ${backup_dir}/logs
- rm -rf ${backup_dir}/logs
- # SYNC TO S3
- echo "uploading to s3 now ${at}"
- s3cmd sync . --recursive --exclude '*.*' --include '*.gz' --no-progress --no-guess-mime-type --acl-private s3://${bucket}/${today}/
- echo "uploaded ${at} `s3cmd ls s3://${bucket}/${today}/`"
- cd ${current_dir}
- # CLEANUP
- echo "removing backup directory: ${backup_dir} ${at}"
- rm -rf ${backup_dir}
- echo "ended backup ${at}"
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement