我对事实感兴趣,使用统一(http://www.cis.upenn.edu/~bcpierce/unison/)时会破坏您的数据?我想了解它的可靠性。
我对事实感兴趣,使用统一(http://www.cis.upenn.edu/~bcpierce/unison/)时会破坏您的数据?我想了解它的可靠性。
Answers:
我停止使用Unison是因为:
从2004年开始,我就一直在使用Unison。在回答另一个问题时,我对rsync表示了赞赏,认为rsync是一种用于在计算机之间备份/同步数据的工具。
在所有这些时间里,Unison从不破坏文件内容的意义上从未破坏过我的数据。但是,它显示出对边缘条件(例如正在使用的文件,权限或跨平台问题)的敏感性。如果使用Unison同步文件时遇到任何错误,则需要仔细研究。保存您的日志。
几周前,我决定停止使用Unison,然后回到rsync。主要原因:
这些是Unison的缺点:
在Windows上同步两个Cygwin目录时,它将破坏Cygwin使用的符号链接,并破坏内容:
C:\Program Files\Unison>"Unison-2.40.102 Text.exe" c:\cygwin socket://xps:4321/c:\cygwin -path bin
UNISON 2.40.102 started propagating changes at 03:32:12.55 on 28 Feb 2013
[BGN] Updating file bin/X from C:/cygwin to //xps/C:/cygwin
$ ls -l /bin/X //xps/c/cygwin/bin/X
-rwxr-xr-x+ 1 Administrators ???????? 19 Feb 28 03:32 //xps/c/cygwin/bin/X
lrwxrwxrwx 1 Chloe None 8 Jan 28 18:35 /bin/X -> XWin.exe
$ stat /bin/X //xps/c/cygwin/bin/X
File: `/bin/X' -> `XWin.exe'
Size: 8 Blocks: 1 IO Block: 65536 symbolic link
Device: f8e5edb8h/4175818168d Inode: 1125899907027010 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1006/ Chloe) Gid: ( 513/ None)
Access: 2013-01-28 18:35:38.648870400 -0500
Modify: 2013-01-28 18:35:38.648870400 -0500
Change: 2013-01-28 18:35:38.648870400 -0500
Birth: 2013-01-28 18:35:38.648870400 -0500
File: `//xps/c/cygwin/bin/X'
Size: 19 Blocks: 1 IO Block: 65536 regular file
Device: 808a8f0bh/2156564235d Inode: 4222124650737757 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 544/Administrators) Gid: (4294967295/????????)
Access: 2013-02-28 03:32:20.619899500 -0500
Modify: 2013-02-28 03:32:20.619899500 -0500
Change: 2013-02-28 03:32:20.629884400 -0500
Birth: 2013-02-26 13:21:32.963302500 -0500
注意大小和权限的变化吗?在目标计算机上,尝试运行命令时,它失败:
Chloe@xps /usr/bin
$ X
bash: ./X: cannot execute binary file
我必须使用rsync正确复制符号链接。
$ rsync -arvz /cygdrive/c/cygwin/bin/ //xps/c/cygwin/bin
sending incremental file list
./
X -> XWin.exe
另一个失败是Unison默认情况下不保留修改时间(但是可以使用该-times
选项来统一同步文件修改时间)!如果同步,则修改的时间将设置为目标上的文件创建时间:
$ unison 'c:\Sites' '\\xps\c\Sites'
...
new file ----> ruby-env.sh
...
[BGN] Copying ruby-env.sh from c:/Sites to //xps/c/Sites
[END] Copying ruby-env.sh
$ ls -l ruby-env.sh //xps/c/sites/ruby-env.sh
----------+ 1 ???????? ???????? 188 Feb 28 02:48 //xps/c/sites/ruby-env.sh
-rw-r--r--+ 1 Chloe None 188 Feb 27 03:06 ruby-env.sh
从理论上讲,如果您可能会丢失数据