#!/bin/bash # Rsync settings RSYNC_HOST="backup.example.org" RSYNC_USER="backup" RSYNC_PASSFILE="/root/rsync.secret" # MySQL settings MYSQL_USER="backup" MYSQL_PASS="!!changeme!!" MYSQL_DATADIR="/var/lib/mysql" # ------------------- BACKUP FILES ------------------- # # backup the www folder rsync -avzL --delete --password-file=$RSYNC_PASSFILE /var/www/* rsync://$RSYNC_USER@$RSYNC_HOST/$RSYNC_USER/www # ------------------- BACKUP MYSQL ------------------- # # Create a temp directory to use TMP_DIR="/tmp/mysql_`date +%s`" mkdir $TMP_DIR # Enter the MySQL data directory cd $MYSQL_DATADIR # Find each MySQL table there is (each has it's own folder) for DB in `find * -type d -prune` do mysqlhotcopy --method=cp --user=$MYSQL_USER --password=$MYSQL_PASS $DB $TMP_DIR done # rsync TMP_DIR rsync -avzL --delete --password-file=$RSYNC_PASSFILE $TMP_DIR/* rsync://$RSYNC_USER@$RSYNC_HOST/$RSYNC_USER/mysql # remove TMP_DIR rm -rf $TMP_DIR