#!/bin/sh # # Copyright (c) 2002, 2003, 2004, 2005 Peter Palfrader # # All rights reserved. # umask 037 set -e set -u DATE=`date "+%Y%m%d-%H%M%S"` if [ -d /var/backups/local/mysql ]; then TARGET=/var/backups/local/mysql elif [ -d /var/local/backup/mysql ]; then TARGET=/var/local/backup/mysql else echo "Cannot find a backup target directory" >&2 exit 1 fi 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'