#!/bin/bash # developed by k2patel # k2patel@hotmail.com ############# Read ME ############### # this Script will do the Backup and remove old copy. # This script work based on existing DB Entry. # When you initialize it only create one copy rest of the dummy entry need to be entered by you. ##################################### BASE="$( cd "$( dirname "$0" )" && pwd )" cd $BASE source config_bash DATE=$(date +%Y%m%d) perl=$(which perl) for inst in instance{1..10} do eval var1=\$$inst arry=($var1) if [[ $1 == "init" ]]; then if [ "$var1" != "" ] then vol=${arry[0]} echo "Running backup for $vol stored in " newsnp=`$perl create_snap.pl $vol $DATE` $perl db.pl add $vol $newsnp $DATE echo "waiting." $perl snap_status.pl $newsnp echo "done" fi else if [ "$var1" != "" ] then freq=${arry[1]} vol=${arry[0]} iter=${arry[2]} lookup=$(echo "$iter * $freq" | bc) isit=`date -d "now -$lookup days" +%Y%m%d` isit_nxt=`date -d "now -$freq days" +%Y%m%d` lstnc=(`$perl $BASE/db.pl get "$vol" "$isit"`) if [ "$isit" == "${lstnc[1]}" ];then echo "Running backup for $vol stored in " newsnp=`$perl create_snap.pl $vol $DATE` $perl db.pl add $vol $newsnp $DATE echo "waiting." $perl snap_status.pl $newsnp echo "done" lstnx=(`$perl $BASE/db.pl get "$vol" "$isit_nxt"`) if [ "${lstnx[0]}" == '' ]; then echo "Notify Admin" else if [ "${lstnc[0]}" != '' ]; then $perl delete_snap.pl ${lstnc[0]} fi fi else echo "backup is not needed" fi fi fi done