#!/bin/sh

bdir=/usr/local/share/mysql-backup/`hostname -s`
[ -d $bdir ] || mkdir -p $bdir

### Dump all MySQL tables into files ###

cd /var/lib/mysql; for db in *; do
  if [ -d $db ]; then
    [ -d $bdir/$db ] || mkdir $bdir/$db
    cd $db; for tab in *.MYD; do
      if [ -f $tab ]; then
        table=`basename $tab .MYD`
        #echo "Processing table $table in database $db"
        /usr/bin/mysqldump -u`grep ^user /etc/mysql/debian.cnf | tail -n 1 | awk '{print $NF}'`\
        	-p`grep ^password /etc/mysql/debian.cnf | tail -n 1 | awk '{print $NF}'`\
		$db $table > $bdir/$db/tbl_${table}_`date "+%G%m%d-%R"`.sql
      fi
    done; cd ../
  fi
done

### Remove old backup files ###

# Remove all backups older than ten days
find $bdir -mtime +7 | xargs -r rm -rf

# Remove all backups older than seven days, except the one at 23h
find $bdir -mtime +5 ! -name "*00:[0-9]*.sql" | xargs -r rm -rf
	
# Remove all backups older than seven days, except the ones at 23h, 15h and 07h
find $bdir -mtime +1 ! -name "*00:[0-9]*.sql" ! -name "*09:[0-9]*.sql"\
	! -name "*18:[0-9]*.sql" | xargs -r rm -rf
