与Unison的单向同步/备份


13

我在Mac OSX和Ubuntu 9.10机器上使用了同步工具Unison,将音乐从Mac备份到Ubuntu。关键是,我想以Mac为源,而Ubuntu为目标,以便Ubuntu机器始终是Mac上Music文件夹的精确副本,但是如果我从Ubuntu删除某些内容,它将不会在Mac上无法删除。我看了看文档,但目前有点麻烦。

Answers:


1

一个更好的工作工具可能是rsync(您需要在两台计算机上都安装它)。我使用它来使我的笔记本电脑音乐文件夹与家庭文件服务器保持同步,这与您的情况非常相似。rsync专门用于保持镜像副本为最新。

这样的命令行可能很有用(假设您是从Ubuntu运行的):

rsync -a --delete-before myMacMachineName:/MyMusic/ /mymusic/

如果要从Mac运行上述行并推送到Ubuntu计算机而不是拉出,则很容易切换以上行。


33

用途unison -force

手册:

包含首选项 -force root会导致Unison解决所有差异(甚至是无冲突的更改),而有利于root。这有效地将Unison从同步器更改为镜像实用程序。您也可以指定-force newer(或 -force older)强制Unison选择具有较晚(较早)的modtime的文件。在这种情况下, -times还必须启用首选项。此首选项被首选项覆盖forcepartial。仅当您确定知道自己在做什么时,才应使用此首选项!

例如(使用套接字模式)。在要成为其他镜像的目录中启动统一侦听器。在统一客户端调用中定位该套接字。强制使更改从给定的根开始都是单向的。

cd /target/mirror/directory
unison -socket 123456 &

在其他地方或在同一主机上:

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/

2
概要文件的语法是为force变量指定根目录的路径。即force = /home/me/mysynchdir
丹尼尔(Daniel)

2

虽然TheToasterThatCould的答案会“起作用”,但请注意,它将无法正确备份Mac文件系统“ Resource Forks”

尽管Mac OSX版本的rsync是资源叉的,但Linux版本的rsync却不是(并且可能永远不会),因为Apple版本的rsync是OSX特定的,并且在另一端不向rsync提供这些资源分叉。非OSX版本的rsync可以处理的方式)。这样的结果是,资源派生将不会在Mac和Linux机器之间进行同步。

某些Mac应用程序利用资源派生来存储与特定文件有关的数据。如果确定要同步的文件不需要或不使用资源派生,则可以使用rsync。

如果要同步资源派生,那么统一将是更好的方法,因为(根据统一文档),它可以同步资源派生。


0

FreeFileSync是一个开源应用程序,能够镜像目录。它可以单向或双向同步运行,也可以“贡献”模式运行。我可以说它可以完成Microsoft Synctoy的工作。FreeFileSync可以在Mac OS X,Linux和Windows中免费使用。


-1

目前unison /home/test/thing2 /home/test/thing2 socket://somehost:123456/ -silent -batch可以使用,-batch表示完全没有问题

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.