- 论坛徽章:
- 0
|
- #!/bin/ksh
- if (($# != 4)) then
- print "Usage:csh bakup_dbtab.sh dbname start_time[yyyy-mm-dd] stop_time[yyyy-mm-dd] mapping";
- exit 0;
-
- elif (($# == 4)) then
- dbname=$1;
- print "$dbname";
- mkdir "$2--$3";
- filedir="$2--$3";
- print "$filedir";
-
- fi
- for tabname in $(< $4)
- do
-
- mkdir "$filedir/$tabname";
- dbaccess $dbname <<EOF
- unload to "tmp_time.unl" select extend(first_result,year to day) from $tabname where extend(first_result,year to day)>="$2" and extend(first_result,year to day)<="$3";
- EOF
- sed 's/|//w time.unl' tmp_time.unl
- rm tmp_time.unl
- for time in $(<time.unl)
- do
-
- dbaccess $dbname <<EOF
- unload to "$filedir/$tabname/$time.unl" select * from $tabname where extend(first_result,year to day)="$time";
- EOF
- done
- rm time.unl;
- done
- print "Do you want unite the date by table ?(warning:if the system limit files size ,please enter n)(y/n)"
- read answer
- if [[ $answer == [Yy]* ]];
- then
- for tabdir in $(< $4)
- do
- cat $filedir/$tabdir/*.unl > $filedir/$tabdir\-$3.data;
- rm -r "$filedir/$tabdir";
- done
- fi
- print "tar the $filedir ";
- tar -cvf $filedir.tar $filedir;
- print "compress the $filedir.tar "
- compress $filedir.tar
- print "Do you want delete temp dir?(y/n)"
- read answer2
- if [[ $answer2 == [Yy]* ]];
- then
- rm -r $filedir
- fi
- print "Do you want delete the bak_data from table ?(y/n)"
- read answer3
- if [[ $answer3 == [Yy]* ]];
- then
- for tabname in $(< $4)
- do
- dbaccess $dbname <<EOF
- unload to "del_tmp_time.unl" select extend(first_result,year to day) from $tabname where extend(first_result,year to day)>="$2" and extend(first_result,year to day)<="$3";
- EOF
- sed 's/|//w del_time.unl' del_tmp_time.unl
- rm del_tmp_time.unl
- for time in $(<del_time.unl)
- do
- dbaccess $dbname <<EOF
- delete from $tabname where extend(first_result,year to day)="$time";
- EOF
- done
- rm del_time.unl;
- done
- fi
复制代码
***帮你加个code。
建议今后上传的代码都加上code,这样看起来会规整一些
admirer |
|