Skip to content

Instantly share code, notes, and snippets.

@sdenike
Forked from jrh-spg/web_backup.sh
Created December 22, 2013 18:58
Show Gist options
  • Save sdenike/8086802 to your computer and use it in GitHub Desktop.
Save sdenike/8086802 to your computer and use it in GitHub Desktop.
#!/bin/bash
LOCKFILE=/tmp/.wb.lck
HOST=web01.fisys.us
BACKUPHOST=25.23.239.150
DOCROOT=/var/www
EXCLUDEDB='schema\|mysql'
EXCLUDE=.git
DATE=`date +%Y-%m-%d.%H%M`
#TIME=`time|grep real|awk '{print $2}'`
BACKUPFILE=/mnt/backup/$HOST.backup-$DATE.tar.bz2
if [ -f $LOCKFILE ];
then
echo "Lockfile exists... Quitting." & exit 0
else
echo "Starting Web Server backup at `date`."
# Create lockfile
/bin/touch $LOCKFILE
# Create DB backups
echo "Starting database backup."
for i in $(mysql -r -N -s -e "show databases;"|grep -v $EXCLUDEDB);do mysqldump $i > /backup/MYSQL/$i.sql;done && echo "Database backups complete"
# Backup docroot
echo "Backing up $DOCROOT"
tar cjfP - $DOCROOT --exclude='$EXCLUDE'| ssh root@$BACKUPHOST "cat > $BACKUPFILE"
echo "Backup of $DOCROOT and all MySQL databases saved as $BACKUPFILE"
echo "Filesize: `ssh root@$BACKUPHOST "du -sh $BACKUPFILE"`"
# Remove lockfile
echo "Removing lockfile"
rm $LOCKFILE
echo "Backup complete at `date`."
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment