#!/bin/sh # number of backpus per level n=7 backupDir=${1:-~/.backup} if [ ! -d "$backupDir" ]; then echo "Backup target '$backupDir' don't exists!" >&2 exit 1 fi cd $backupDir pos=$(($(cat .pos 2>/dev/null || echo -1)+1)) next_level() ( pos=$1 level=$2 if [ $(($pos%$n)) -eq 0 -a -e $(($level-1))-0 ]; then pos=$((($pos-$n)/$n)) next_level $pos $(($level+1)) dir=$level-$(($pos%$n)) chmod -R u+w $dir/download/*/devel 2>/dev/null rm -rf $dir mv $(($level-1))-0 $dir fi ) next_level $pos 1 ssh backup@minidvblinux.de ' cd backup mkdir -p db for db in bug cms data forum; do mysqldump -u $db -p$db mld_$db > db/$db.sql done ' rsync -acLz --skip-compress=bz2/gz/iso/jpg/opk/png/sfs/tgz --delete -e ssh backup@minidvblinux.de:backup/ 0-$(($pos%$n)) --link-dest=../0-$((($pos-1)%$n)) 2>&1 | grep -v adding echo $pos > 0-$(($pos%$n))/.pos touch 0-$(($pos%$n)) echo $pos > .pos.tmp && (rm .pos; mv .pos.tmp .pos)