使用 Unison 进行单向同步/备份

rof*_*fle 13 linux mac backup sync unison

我在 Mac OSX 和 Ubuntu 9.10 机器上使用同步工具 Unison 将我的音乐从 Mac 备份到 Ubuntu。问题是,我想让我的 Mac 成为源,Ubuntu 成为目标,这样 Ubuntu 机器将始终是 Mac 上 Music 文件夹的精确副本,但是如果我从 Ubuntu 中删除某些内容,它不会t 在 Mac 上被删除。我已经查看了文档,但目前我有点不知所措。

小智 35

使用unison -force

手动的:

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

例如(使用套接字模式)。在您想要成为其他东西的镜像的目录中启动统一侦听器。在一致客户端调用中定位该套接字。Force 使更改从给定的根以一种方式发生。

cd /target/mirror/directory
unison -socket 123456 &
Run Code Online (Sandbox Code Playgroud)

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

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/
Run Code Online (Sandbox Code Playgroud)

  • 配置文件的语法是指定 force 变量的根目录的路径。即,`force = /home/me/mysynchdir` (2认同)

小智 1

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

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

rsync -a --delete-before myMacMachineName:/MyMusic/ /mymusic/
Run Code Online (Sandbox Code Playgroud)

如果您想从 Mac 运行它并推送到 Ubuntu 计算机而不是拉取,则可以很容易地切换上面的行。