#!/bin/sh # # Copyright (c) 2002, 2003, 2004, 2005 Peter Palfrader # # All rights reserved. # echo "Does not handle per client backup dir" >&2 exit 1 umask 037 set -e set -u DATE=`date "+%Y%m%d-%H%M%S"` TARGET=/var/backups/local/mysql [ -d $TARGET ] || mkdir -p $TARGET echo 'SHOW DATABASES;' | mysql | tail -n +2 | while read db; do if [ "$db" = "innodb" -o "$db" = "test" ] ; then continue; fi file="$TARGET/$DATE-$db" mysqldump --opt --lock-tables -- "$db" > "$file" bzip2 -- "$file" md5=`md5sum -- "$file.bz2" | awk '{print $1}'` if [ -e "$TARGET/MD5-$md5" ]; then rm -- "$file.bz2" ln "$TARGET/MD5-$md5" "$file.bz2" else ln "$file.bz2" "$TARGET/MD5-$md5" fi done | egrep -v 'Database ".*" dropped' # clean up old stuff find "$TARGET" -name 'MD5-*' -links 1 -print0 | xargs --no-run-if-empty rm --