免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3813 | 回复: 2
打印 上一主题 下一主题

原创,数据备份的脚本 for informix  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-07 18:12 |只看该作者 |倒序浏览
  1. #!/bin/ksh
  2. if (($# != 4)) then

  3.         print "Usage:csh  bakup_dbtab.sh dbname start_time[yyyy-mm-dd] stop_time[yyyy-mm-dd] mapping";
  4.         exit 0;
  5.        
  6. elif (($# == 4)) then

  7.         dbname=$1;
  8.         print "$dbname";
  9.         mkdir "$2--$3";
  10.         filedir="$2--$3";
  11.         print "$filedir";
  12.        
  13. fi

  14. for tabname in $(< $4)
  15. do
  16.    
  17.    mkdir "$filedir/$tabname";
  18. dbaccess $dbname <<EOF
  19.    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";
  20. EOF

  21.    sed 's/|//w time.unl' tmp_time.unl
  22.    rm tmp_time.unl
  23.    for time in $(<time.unl)
  24.    do   
  25.      
  26. dbaccess $dbname <<EOF     
  27.   unload to "$filedir/$tabname/$time.unl" select * from $tabname where extend(first_result,year to day)="$time";
  28. EOF
  29.    done
  30.    rm time.unl;
  31. done

  32. print "Do you want unite the date by table ?(warning:if the system limit files size ,please enter n)(y/n)"
  33. read answer
  34. if [[ $answer == [Yy]* ]];
  35. then
  36. for tabdir in $(< $4)
  37. do
  38.    cat $filedir/$tabdir/*.unl > $filedir/$tabdir\-$3.data;
  39.    rm -r "$filedir/$tabdir";
  40. done
  41. fi

  42. print "tar the $filedir  ";
  43.    tar -cvf $filedir.tar $filedir;

  44. print "compress the $filedir.tar  "
  45.    compress $filedir.tar

  46. print "Do you want delete temp dir?(y/n)"
  47. read answer2
  48. if [[ $answer2 == [Yy]* ]];
  49. then
  50.    rm -r $filedir
  51. fi

  52. print "Do you want delete the bak_data from table ?(y/n)"
  53. read answer3
  54. if [[ $answer3 == [Yy]* ]];
  55. then
  56. for tabname in $(< $4)
  57. do
  58. dbaccess $dbname <<EOF
  59.    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";
  60. EOF

  61.    sed 's/|//w del_time.unl' del_tmp_time.unl
  62.    rm del_tmp_time.unl
  63.    for time in $(<del_time.unl)
  64.    do
  65. dbaccess $dbname <<EOF     
  66.    delete from $tabname where extend(first_result,year to day)="$time";
  67. EOF
  68.    done
  69.    rm del_time.unl;
  70. done
  71. fi
复制代码


***帮你加个code。
建议今后上传的代码都加上code,这样看起来会规整一些
admirer

论坛徽章:
0
2 [报告]
发表于 2003-11-07 18:13 |只看该作者

原创,数据备份的脚本 for informix

请大家指教
Esql 该用户已被删除
3 [报告]
发表于 2004-01-17 22:51 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP