Chinaunix

标题: 如何实现差异备份和增量备份 [打印本页]

作者: 冰谛    时间: 2014-12-09 17:03
标题: 如何实现差异备份和增量备份
例如我需要将A目录及其子目录下的所有.txt文件备份到B目录中,以后每次备份的时候进行比较,若A目录中新产生.txt文件,或者某一文件做了改动,都将其备份到B目录中,求大神帮忙解决,不甚感激!
作者: dn833    时间: 2014-12-09 17:25
本帖最后由 dn833 于 2014-12-09 17:27 编辑
  1. rsync -avz --include="*.txt" /patha /pathb
复制代码

作者: 冰谛    时间: 2014-12-09 18:03
回复 2# dn833


多谢大神,我刚试了一下,这个将A目录下的所有内容都备份到B目录中,但是我需要备份的是“.txt"的文件,不知道是不是环境的问题,我的用户环境是csh。
作者: 李满满    时间: 2014-12-09 18:28
学生党:飘过~
rsync -avz /patha/*.txt  /pathb 很好用的工具啊
作者: 冰谛    时间: 2014-12-09 20:24
回复 4# 李满满

patha下面如果有子目录呢?

   
作者: 冰谛    时间: 2014-12-09 20:44
我自己写了个备份A目录下新产生.txt文件的脚本如下:
#!/bin/bash

Dir1=A
Dir2=B

for i in `find $Dir1 -name "*.txt"`
do
     var1=`echo $i | awk -F "/" '{print $NF}'`
     var2=`find $Dir2 -type f | grep $var1`
     if [ -z "$var2" ]
     then
             cp  $i    $Dir2/
     fi
done

exit   $?

但是有个问题,如果A目录及其子目录中有同名文件,就无法处理。

还有就是差异备份不知道如何实现,二楼大神的方法虽好,但是却不满足我的需求。
作者: blackold    时间: 2014-12-09 23:09
回复 1# 冰谛


粗略地:
  1. rsync -av --del --delete-excluded -f '+ */' -f '-! *.txt' path/to/A/ path/to/B/
复制代码

作者: 冰谛    时间: 2014-12-10 09:41
回复 7# blackold

黑哥果断大神,但是我还是有个问题,如果这样备份,我在A目录改动某一个.txt文件,然后执行你的命令,这样会将B目录下之前备份的文件覆盖掉。


   
作者: blackold    时间: 2014-12-10 09:49
本帖最后由 blackold 于 2014-12-10 09:49 编辑

回复 8# 冰谛


    那你期望如何?


   这只是同步工具,也许你需要不是同步,而是 VCS。
作者: 冰谛    时间: 2014-12-10 10:19
回复 9# blackold


刚才查了下手册页,加-b选项似乎可以解决这个问题,多谢黑哥!

   
作者: blackold    时间: 2014-12-10 10:43
回复 10# 冰谛


    不客气。

   哦,-b 很少用。可以多次备份旧文件吗?
作者: 冰谛    时间: 2014-12-10 10:49
回复 9# blackold


我想实现的情况是这样的:
1.找出A目录及其子目录中所有的.txt文件,在B目录下新建一个文件夹,将所有.txt文件存放其中;
2.若A目录中新产生.txt文件或者某一个txt文件做了改动,在B目录下再新建一个文件夹,将改动或者新产生的内容存放其中;
3.定制任务计划,每天备份

   
作者: blackold    时间: 2014-12-10 10:53
回复 12# 冰谛


    哦,那用 rsync 可以实现了。

   创建名为当前日期 backup-dir ,这样应该可以了。
作者: 珍珍zz    时间: 2015-04-27 12:38
你好,可以使用”轻松备份“软件来进行增量或者差异备份。操作简单方便。。。





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2