Unison有多可靠?它曾经毁了您的数据吗?[关闭]


17

我对事实感兴趣,使用统一(http://www.cis.upenn.edu/~bcpierce/unison/)时会破坏您的数据?我想了解它的可靠性。

Answers:


4

我停止使用Unison是因为:

  • 它不能正确处理文件名中的特殊字符和国际字符。我认为这些文件没有被复制(但是我不确定)。
  • 在Mac上,(可选)GUI经常崩溃,因此每次崩溃后我都必须重新启动同步过程。

3
在Windows,Linux或Mac上,甚至在通过ssh进行跨平台同步时,我在Unison的文件名中都没有遇到国际字符的问题。实际上,我最初开始使用它是因为它可以正确同步Win和Linux主机,而rsync仍然不能。
ttarchala

3
Cygwin和非ASCII文件名存在一个已知问题。这不是一致的错误。
JeffP

我在许多日本档案中使用Unison。我没有任何问题,尽管我很多年前确实有问题。我正在使用已经有几年历史并完全支持Unicode的2.48.3。
edwinbradford

23

从2004年开始,我就一直在使用Unison。在回答另一个问题时,我对rsync表示了赞赏,认为rsync是一种用于在计算机之间备份/同步数据的工具。

在所有这些时间里,Unison从不破坏文件内容的意义上从未破坏过我的数据。但是,它显示出对边缘条件(例如正在使用的文件,权限或跨平台问题)的敏感性。如果使用Unison同步文件时遇到任何错误,则需要仔细研究。保存您的日志。

几周前,我决定停止使用Unison,然后回到rsync。主要原因:

  • Unison不再积极开发,而rsync是
  • 在实际使用中,Unison比rsync慢,在我的主目录中,我有成千上万个文件,总大小超过150 GB。一天的工作用Unison备份到USB驱动器大约需要10分钟,而使用最新的rsync仅需1-2分钟。
  • 由于上述极端情况,例如接收文件系统突然断开,Unison的数据库需要每隔几个月重建一次。当它们损坏时,您的文件不会被破坏,但是它们可能保持不同步,并给您带来奇怪的错误。尤其是对于远程卷,此数据库重建可能需要数小时甚至数天。

14
顺便说一句,请注意,Unison实际上是与rsync不同的用例。Unison用于双向同步,而rsync用于单向同步。这使其比rsync更强大,但也必定更加复杂。所以,工作的工具,等等。
sleske

您如何“重建”数据库?只需清除.unison文件夹?
russellpierce

考虑使用Crashplan.com而不是rsync进行备份。
Chloe

9

我一直没有使用过ttarchala,但是它对于较小的文件集确实很好用,并且我也没有丢失任何数据。

虽然它没有得到积极开发,但仍得到了一定程度的维护。在过去的几个月中,已经有一些提交到源代码树的更新/错误修正,您可以在此处获取当前的二进制文件(例如)。

还要注意,您可以通过设置fastcheck / pretendwin来提高性能,该功能可以按大小和日期检测文件更改,而不是对整个文件进行校验和。


8

我使用了一段时间(以在台式机和笔记本电脑之间同步)。正如其他人所写的那样,在同步过程中要非常小心,而且我从未丢失任何文件。在出现问题的情况下,可能需要重新进行(耗时的)同步,但最终一切都会自行解决。

在常规操作中,它既快速又安全。


7

我在Mac电脑上使用Unison至少已有8年了。我从来没有让Unison损坏或丢失过文件。早些时候,我在Unison上遇到了一些不了解资源派生的问题,这导致了同步失败。

我发现Mac B&W G3上的Finder通过每兆字节随机更改一个或两个字节来静默破坏复制的文件后,便开始使用Unison。(由于修订版1逻辑板上Firewire的硬件问题引起。)自从出现此问题以来,我一直非常,非常偏执地比较备份副本,而Unison为我做得很好。


3

这些是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

从理论上讲,如果您可能会丢失数据

  1. 具有2个同步文件位置,即Location1,Location2,
  2. 在第二个位置修改文件的同步副本,
  3. 在第一位置和第三位置之间与Unison同步,
  4. 由于Unison,在第三个目的地创建了一个文件,其修改日期较新,
  5. 使用了其他同步工具,例如rsync或SyncToy,
  6. 然后再次将第三个目标与第二个位置同步,该位置实际上是在第一个源之后,但在第三个目标文件创建时间之前修改的,
  7. 另一个同步工具会注意到第三位置的时间较新,并覆盖了第二位置的更改,
  8. 从而丢失数据。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.