| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux开发区 > SHELL

数据备份的脚本 for informix

时间:2006-06-28 22:23:10  来源:chinaunix  作者:Linux联盟收集
ChinaUnix.net
首页 | 论坛 | 博客 | Linux | 人才 | 培训 | 精华 | Wiki | 读书 | 资料 | 手册 | 下载 | 搜索
ChinaUnix首页 > 精华文章 > Shell > 正文
XasLinux联盟

[精彩] 原创,数据备份的脚本 for informix


http://www.chinaunix.net 作者:武昌鱼  发表于:2004-01-17 22:51:16
发表评论】【查看原文】【Shell讨论区】【关闭
XasLinux联盟
#!/bin/ksh
XasLinux联盟
if (($# != 4)) then XasLinux联盟
XasLinux联盟
print "Usage:csh  bakup_dbtab.sh dbname start_time[yyyy-mm-dd] stop_time[yyyy-mm-dd] mapping"; XasLinux联盟
exit 0; XasLinux联盟
XasLinux联盟
elif (($# == 4)) then XasLinux联盟
XasLinux联盟
dbname=$1; XasLinux联盟
print "$dbname"; XasLinux联盟
mkdir "$2--$3"; XasLinux联盟
filedir="$2--$3"; XasLinux联盟
print "$filedir"; XasLinux联盟
XasLinux联盟
fi XasLinux联盟
XasLinux联盟
for tabname in $(< $4) XasLinux联盟
do  XasLinux联盟
    XasLinux联盟
   mkdir "$filedir/$tabname"; XasLinux联盟
dbaccess $dbname <<EOF  XasLinux联盟
   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"; XasLinux联盟
EOF XasLinux联盟
XasLinux联盟
   sed 's/|//w time.unl' tmp_time.unl XasLinux联盟
   rm tmp_time.unl  XasLinux联盟
   for time in $(<time.unl) XasLinux联盟
   do     XasLinux联盟
      XasLinux联盟
dbaccess $dbname <<EOF      XasLinux联盟
  unload to "$filedir/$tabname/$time.unl" select * from $tabname where extend(first_result,year to day)="$time"; XasLinux联盟
EOF XasLinux联盟
   done XasLinux联盟
   rm time.unl; XasLinux联盟
done XasLinux联盟
XasLinux联盟
print "Do you want unite the date by table ?(warning:if the system limit files size ,please enter n)(y/n)" XasLinux联盟
read answer XasLinux联盟
if [[ $answer == [Yy]* ]];  XasLinux联盟
then XasLinux联盟
for tabdir in $(< $4) XasLinux联盟
do XasLinux联盟
   cat $filedir/$tabdir/*.unl > $filedir/$tabdir\-$3.data; XasLinux联盟
   rm -r "$filedir/$tabdir"; XasLinux联盟
done XasLinux联盟
fi XasLinux联盟
XasLinux联盟
print "tar the $filedir  "; XasLinux联盟
   tar -cvf $filedir.tar $filedir; XasLinux联盟
XasLinux联盟
print "compress the $filedir.tar  " XasLinux联盟
   compress $filedir.tar XasLinux联盟
XasLinux联盟
print "Do you want delete temp dir?(y/n)" XasLinux联盟
read answer2 XasLinux联盟
if [[ $answer2 == [Yy]* ]];  XasLinux联盟
then XasLinux联盟
   rm -r $filedir XasLinux联盟
fi XasLinux联盟
XasLinux联盟
print "Do you want delete the bak_data from table ?(y/n)" XasLinux联盟
read answer3 XasLinux联盟
if [[ $answer3 == [Yy]* ]];  XasLinux联盟
then XasLinux联盟
for tabname in $(< $4) XasLinux联盟
do  XasLinux联盟
dbaccess $dbname <<EOF  XasLinux联盟
   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"; XasLinux联盟
EOF XasLinux联盟
XasLinux联盟
   sed 's/|//w del_time.unl' del_tmp_time.unl XasLinux联盟
   rm del_tmp_time.unl  XasLinux联盟
   for time in $(<del_time.unl) XasLinux联盟
   do XasLinux联盟
dbaccess $dbname <<EOF      XasLinux联盟
   delete from $tabname where extend(first_result,year to day)="$time"; XasLinux联盟
EOF XasLinux联盟
   done XasLinux联盟
   rm del_time.unl; XasLinux联盟
done XasLinux联盟
fi
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
    无相关信息
栏目更新
栏目热门