This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
snapshot_backup [2011/09/20 20:44] k2patel [C0D3s] |
snapshot_backup [2011/09/20 20:51] k2patel [C0D3s] |
||
---|---|---|---|
Line 49: | Line 49: | ||
print "Creating Database..."; | print "Creating Database..."; | ||
$dbh = DBI->connect( "dbi:SQLite:machine.db" ) || die "Cannot connect: $DBI::errstr"; | $dbh = DBI->connect( "dbi:SQLite:machine.db" ) || die "Cannot connect: $DBI::errstr"; | ||
- | $dbh->do( "CREATE TABLE TVR1 ( v_ID, s_ID, Dte )" ); | + | $dbh->do( "CREATE TABLE DESK ( v_ID, s_ID, Dte )" ); |
$dbh->disconnect; | $dbh->disconnect; | ||
} | } | ||
Line 70: | Line 70: | ||
exit 1; | exit 1; | ||
}else{ | }else{ | ||
- | $dbh->do( "INSERT INTO TVR1 VALUES ( '$ARGV[1]', '$ARGV[2]', '$ARGV[3]' )" ); | + | $dbh->do( "INSERT INTO DESK VALUES ( '$ARGV[1]', '$ARGV[2]', '$ARGV[3]' )" ); |
} | } | ||
} | } | ||
Line 78: | Line 78: | ||
exit 1; | exit 1; | ||
}else{ | }else{ | ||
- | $dbh->do( "DELETE FROM TVR1 WHERE s_ID = '$ARGV[2]' AND Dte = '$ARGV[3]'" ); | + | $dbh->do( "DELETE FROM DESK WHERE s_ID = '$ARGV[2]' AND Dte = '$ARGV[3]'" ); |
} | } | ||
} | } | ||
case "get" { | case "get" { | ||
- | $res = $dbh->selectall_arrayref( "SELECT s_ID, Dte FROM TVR1 WHERE v_ID = '$ARGV[1]' AND Dte = '$ARGV[2]'" ); | + | $res = $dbh->selectall_arrayref( "SELECT s_ID, Dte FROM DESK WHERE v_ID = '$ARGV[1]' AND Dte = '$ARGV[2]'" ); |
foreach( @$res ) { | foreach( @$res ) { | ||
#print "$_->[0] $_->[1] $_->[2]\n"; | #print "$_->[0] $_->[1] $_->[2]\n"; | ||
Line 90: | Line 90: | ||
else | else | ||
{ | { | ||
- | $res = $dbh->selectall_arrayref( "SELECT * FROM TVR1" ); | + | $res = $dbh->selectall_arrayref( "SELECT * FROM DESK" ); |
foreach( @$res ) { | foreach( @$res ) { | ||
print "$_->[0] $_->[1] $_->[2]\n"; | print "$_->[0] $_->[1] $_->[2]\n"; | ||
Line 98: | Line 98: | ||
$dbh->disconnect; | $dbh->disconnect; | ||
</code> | </code> | ||
+ | |||
+ | === backup.sh === | ||
+ | |||
+ | <code bash | backup.sh> | ||
+ | #!/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. | ||
+ | ##################################### | ||
+ | |||
+ | source config_bash | ||
+ | |||
+ | BASE=$(pwd) | ||
+ | BASE="$( cd "$( dirname "$0" )" && pwd )" | ||
+ | cd $BASE | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Coming....... more |