#! /bin/sh -e # backup procedures to glaucon BACKUP_DIR=/backup FILES_DIR=/backup/live DB_DIR=/backup/databases # nothing to configure below this line usage() { cat < ... filesystem: a filesystem to dump EOF } if [ $# -lt 1 ]; then usage echo "not enough arguments" fi FILESYSTEMS="$@" #mount -o remount,rw $BACKUP_DIR #trap "umount $BACKUP_DIR" 1 2 15 mkdir -p $FILES_DIR $DB_DIR chown backup $FILES_DIR $DB_DIR chmod og-rxw $FILES_DIR $DB_DIR # backup files for fs in $FILESYSTEMS do rsync -xa $fs/ $FILES_DIR/$fs/ || true done # backup mysql databases mysql -s -B -u sys_backup -e 'SHOW DATABASES' | while read database do mkdir -p $DB_DIR/$database mysqlhotcopy -q --addtodest --method=rsync $database $DB_DIR || true chown -R backup $DB_DIR/$database || true chmod -R og-rxw $DB_DIR/$database || true done #umount $BACKUP_DIR