免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1625 | 回复: 0

一条备份代码开发目录的命令 [复制链接]

论坛徽章:
0
发表于 2010-11-01 10:34 |显示全部楼层
一条备份svn开发机上备份所有文本文件的脚本指令:
功能:每天8:30-21:30自动备份所有的文本文件
特色:a. 自动过滤临时文件夹
         b. 自动过滤隐藏文件夹
         c. 自动过滤二进制文件、core文件、数据文件、压缩包
         d. 自动清除7天一上的备份文件
缺陷:
        a. 本脚本不能区分长假,国庆及春节时假前的备份文件将被丢失,建议在磁盘容量足够的时候将备份文件保留时间延长到20天左右
        b. 本脚本不支持增量备份(增量备份的代码为find $PATH -mtime -1 ...),如果代码基很大,备份20天以上的代码需要很大的存储空间,
            建议将全备份时间间隔增加到每天一次(晚上9:30以后,代码机负载较小),每30分钟完成一次增量备份
        c. find命令需要频繁访问磁盘,效率不是很高;如果find命令30分钟之内不能完成一次备份,建议首先考虑将备份时间间隔延迟到一次备份
           的时间;如果一次备份时间大于60分钟,建议先考虑增量备份;如果增量备份不能满足需求,首先尝试perl脚本,然后考虑C/C++;
  1. find $CODEPATH ! -wholename "*$EXCEPTION_PATH*" -type f -exec file {} \; | \
  2.         egrep -v '\/\.' | \
  3.         awk -F':' '
  4.           $2 !~ /ELF / &&
  5.           $2 !~ /archive/ &&
  6.           $2 !~ /data/ {
  7.               print $1
  8.           }' > $FILELIST

  9.           tar zcf $CODEBACKUP -T $FILELIST
  10.           scp $CODEBACKUP root@$REMOTE_MACHINE:$BACKUPPATH
  11.           find $BACKUPPATH -name "$PREFIX*" -ctime +7 -exec rm -f {} \;
  12.           ssh root@$REMOTE_MACHINE "find $BACKUPPATH/$PREFIX* -ctime +7 -exec rm -f {} \;"
复制代码
EXCEPTION_PATH: 待过滤的目录,用于存放临时的不需要备份的文件等,任何人可以在任意目录下创建自己的临时文件夹
file: 查看文件类型
egrep: 过滤隐藏目录,主要包括.svn目录下的文本文件
/ELF /: 过滤二进制文件
/archive/: 过滤打包文件
/data/:一些数据文件,包括开发人员生成的临时数据

tar: 本地备份目标文件
scp: 远程备份目标文件

find ...: 周期性删除一周以上的备份文件
ssh ... 'find ...':周期性删除远程备份机上一周以上的备份文件

附带周期性备份脚本(crontab):
30 8-21 * * * $BACKUP_BATH
用于每天早8:30到晚9:30自动备份
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP