标签: unison

合理处理移动的 Rsync

我已经成功地使用rsync在我的笔记本电脑和上网本(都使用 ext4 和 Linux)之间同步我的主目录。我唯一的问题是,我时不时地喜欢完全重新组织某些目录,而rsync将此视为删除和创建新文件,这使得它非常缓慢且效率低下。

有人知道可以很好地处理文件移动的好软件吗?

我发现一致应该能够做到这一点,但它似乎在实践中不起作用。我通过同步两个本地目录来测试一致性,每个目录中都有一个大文件,它仍然检测到我的移动是删除+创建,实际上比rsync还要慢。

此外,如果我在几个月前查看unison的源代码时没记错的话,它试图做一些类似做 sha sums 的事情——而且我不希望我的理想解决方案做 sha sums——这在大的情况下太慢了文件/目录。我想要一些注意以下内容的东西:

" 此文件的最后一个源副本似乎已被删除,并且源目录树中的其他位置有一个具有相同 mdate、大小和 inode 编号的新文件,因此我将假设这是一个移动和相应地移动其目标副本,而不是执行删除+复制。”

能够快速同步这些机器对我来说很重要。

有什么建议?

linux rsync synchronization unison

13
推荐指数
2
解决办法
4247
查看次数

齐声“文件结束异常”

最后几天我在运行一致时遇到此异常:
“加载存档时引发 End_of_file 异常”(这表明存在错误!)

它没有帮助,我无法在谷歌的其他地方找到答案,请大家谈谈但似乎无法解决?

我检查了我的文件,有损坏的符号链接,但以前从来没有问题..

完整的命令基本上是:
unison "$PATH1" "$PATH2" -links false -fastcheck true -times -retry 2 -follow "Regex .*" -force "$PATH1" -nodeletion "$PATH1" -nodeletion "$PATH2" -batch -ui text

unison

8
推荐指数
1
解决办法
4839
查看次数

对于相同的路径,如何修复因“致命错误:内部错误:新档案不相同”而导致的统一失败?

当尝试通过 同步两条路径(其中一条是远程路径)时ssh,统一失败

致命错误:内部错误:新档案不相同。

虽然通过网络安装同步工作正常。

虽然unison -debug all对可能的错误没有任何指示,但使用它ssh -v会导致很多

通道 0:坏的 ext 数据

错误。但是,两台机器都运行相同版本的 unison (2.40.63)。

ssh unison

7
推荐指数
1
解决办法
4573
查看次数

用于漫游设备的集中 $HOME - 同步而不是 NFS?

十多年来,我一直在我的小办公室的完整 Debian 环境中工作(目前有 1 台服务器、7 名用户、3 台台式机、4 台笔记本电脑)。身份验证基于 Kerberos,用户配置文件在 LDAP 中管理,$HOME 在 pam_mount 或 autofs 的帮助下通过 NFSv4 提供给所有客户端。对于在本地局域网上工作的桌面用户来说,此设置非常合适。

两年前,我开始为笔记本电脑用户使用相同的设置。WiFi 连接导致了一些额外的缓慢,并且可以肯定的是,一旦用户尝试在办公室外使用笔记本电脑,速度就会变得非常慢。优化 $XDG_{CACHE,DATA,CONFIG}_HOME 并研究 Firefox on NFS 的具体优化让事情变得更好一些。

我现在正在考虑将 $HOMES 转移到笔记本电脑+台式机。如果设备出现故障,用户可以切换设备,这很好,但这种情况只是偶尔发生一次。牺牲这种灵活性来获得更快的日常用户体验似乎是一个不错的决定。如果我可以在启动和关闭时将本地 $HOME 双向同步到中央服务器,那么可能根本不需要权衡......

  • “unison”似乎是保持本地 $HOME 与中央副本同步的良好候选者,但它似乎需要服务器和客户端之间完全相同的版本,而我无法承诺。
  • “lsyncd”似乎是一个非常好的候选者,但我似乎没有找到任何使用该工具用于其 $HOME 目录的用户故事......
  • 我什至简单地浏览了“GlusterFS”,但这似乎是一个不平凡的替代品。任何人都有任何经验和最佳实践可以分享吗?我不介意进行一些实验,但我担心我错过了上述的一些明显的缺点......谢谢!

nfs unison lsyncd

7
推荐指数
1
解决办法
1598
查看次数

如何在一个系统上使用多个版本的统一?

我有两台机器。一个带有 unison v. 2.40 (Debian Jessie) 和一个新的 (Debian Stretch),我在其中安装了 package unison-all,它带来了 unison 版本 2.32、2.40 和 2.48。但是,我无法让我的 2.40 对新机器起作用,因为它只提供了 v. 2.48。无论我做什么,我都会得到:

expected "Unison 2.40\n" but received "Unison 2.48\n\000\000\000\000\017",
Run Code Online (Sandbox Code Playgroud)

我通过unison-all明确地删除和安装 v. 2.40解决了这个问题,但我想知道如果我想在这台机器上使用两个并发版本的一致,该怎么办。

version unison

6
推荐指数
1
解决办法
4876
查看次数

运行 `unison -repeat watch` 会产生文件系统观察器错误

我正在尝试将主机 OSX 中的文件夹同步到运行 Ubuntu 的 VM。(laravel/宅基地)。这是我在主机上运行的命令:

$ unison ssh://vagrant@192.168.10.10//home/vagrant/www ~/unison/www -repeat watch

产生以下输出

Contacting server...
Connected [...]
Looking for changes
  Waiting for changes from server
Fatal error: Server: Unexpected response 'Usage: unison-fsmonitor [options] root [path] [path]...' from the filesystem watcher (expected VERSION)
Run Code Online (Sandbox Code Playgroud)

在我的本地主机上:

$ unison -version
unison version 2.48.3
$ unison-fsmonitor
VERSION 1
Run Code Online (Sandbox Code Playgroud)

在我的虚拟机上:

$ unison -version
unison version 2.48.3
$ unison-fsmonitor
Usage: unison-fsmonitor [options] root [path] [path]...
This program monitors file system changes on all given (relative to root) …
Run Code Online (Sandbox Code Playgroud)

synchronization unison

6
推荐指数
1
解决办法
6922
查看次数

Unison“解组过程中的致命错误”

我已经在三台机器上安装了 unison 2.48.4,两台运行 Linux Mint 17,一台运行 Linux Mint 18。我通过 SSH 进行同步。

两个17的同步没有问题。然而,18 不能与其他两个同步。生成了潜在转移列表,但是当我按“GO”时,我得到以下信息:

Fatal error: Server: Fatal error during unmarshaling (input 
  value: bad bigarray kind), possibly because client and server 
  have been compiled with different versions of the Ocaml compiler.
Run Code Online (Sandbox Code Playgroud)

当我使用图形或命令行版本的统一客户端时,我收到了相同的消息。此外,当我在客户端尝试统一 2.48.3 时,这让我相信是薄荷版本(17 对 18)的差异造成了问题。

我自己没有编译任何东西,只是从 repos 或下载的 deb 包安装。

linux-mint unison

6
推荐指数
1
解决办法
3634
查看次数

Unison 和版本/编译器冲突

我有两台机器,一台运行 Ubuntu 18.04,另一台运行 Ubuntu 20.04。我想使用 Unison 在它们之间同步文件,但存在一些问题。首先,因为我也与另一台机器同步,所以我从源 Unison 2.48.3 编译。然后在 Ubuntu 18.04 中,我从 Ubuntu 软件 Unison 2.48.4 安装了 Ubuntu 20.04。正确设置它们后,我从 Ubuntu 18.04 的命令行运行 unison-2.48.4-gtk 并尝试同步。尽管一切正常,即它找到了机器和目录,然后我收到消息: Fatal error during unmarshaling (input value:ill-formed message) possibly because client and serer have been compiled with different versions of OCaml compiler。在 20.04 中,我检查了 OCaml 的版本,但显然它没有返回任何内容(即使我已经从应用程序商店安装了 unison)。18.04 的版本是 4.05.0。关于我能做什么有什么想法吗?

ubuntu synchronization unison

6
推荐指数
1
解决办法
4226
查看次数

统一和扩展文件属性

我有两台机器,一台 Debian,一台 Ubuntu,都在 ext4 上,在 fstab 中启用了扩展文件属性。getfattr 和 setfattr 已安装并在本地两台机器上完美运行。但是,默认情况下,unison(版本 2.40.102)不会同步扩展文件属性。

我搜索了一下,发现这篇博客文章包含应该启用扩展属性同步的配置文件设置。所以,我改变了我的个人资料,现在它看起来像这样:

root=/path/to/dir
root=ssh://user@example.com//path/to/dir2
auto=true
batch=true
perms=0
rsync=true
maxthreads=1
retry=3
confirmbigdeletes=false
copythreshold=0
copyprog = rsync -aX --rsh='ssh -p 22' --inplace --compress
copyprogrest = rsync -aX --rsh='ssh -p 22' --partial --inplace --compress
copyquoterem = true
copymax = 1
Run Code Online (Sandbox Code Playgroud)

此配置文件同步新文件的扩展属性,但是当我更改已同步文件的扩展属性并执行一致时,我得到:

Nothing to do: replicas have not changed since last sync.
Run Code Online (Sandbox Code Playgroud)

其他一切都完美同步,但 unison 不知道扩展属性的变化。我也尝试禁用 fastcheck,希望它能更详细地检查文件;没有用。我在一个方向上尝试了 rsync'ing,它工作得很好。但我需要双向同步,所以我坚持一致。

我已经查看了官方手册,但它只顺便提到了扩展文件属性。所以我的问题是:这可以统一完成吗?我在这里错过了一些简单的东西吗?或者,是否有其他开源工具可以实现这一目标?(我知道 bsync 和 bitpocket,但在我的初步测试中,他们也没有注意到扩展文件属性的变化)。

rsync xattr unison

5
推荐指数
1
解决办法
1228
查看次数

在默认 Debian 存储库中更新 Unison

Unison是一个跨平台的文件同步软件。Debian 上可用的最新版本已经过时:Debian 有 version2.40.102-2而其他系统有 version 2.48.3

问题是,Unison 不会在使用不同版本的两台机器之间工作,因此2.48Mac OS 上的Unison不会与使用2.40Debian 等版本的机器同步。这使得 Debian 和 Ubuntu 上的 Unison 无法用于跨平台同步。

当然,人们可以从 Unison 下载源代码并在 Debian 上构建它,但这与简单的apt-get install unison.

所以我的问题是,看起来维护人员不再更新 Unison 包了,我能做些什么来提供帮助?

我从未参与过 Debian 的打包工作,我在 Debian 社区中也没有任何名声。我所拥有的只是一个更新的 Unison 二进制文件,我想让它用于一个简单的apt-get install.

packaging debian unison

0
推荐指数
1
解决办法
464
查看次数

标签 统计

unison ×10

synchronization ×3

rsync ×2

debian ×1

linux ×1

linux-mint ×1

lsyncd ×1

nfs ×1

packaging ×1

ssh ×1

ubuntu ×1

version ×1

xattr ×1