我有两台运行 Ubuntu 的机器。一个运行 Ubuntu 18.04 LTS,另一个运行 Ubuntu 20.04 LTS。我想使用unison在它们之间同步文件。我已经以传统方式在它们两个上安装了一致。IE:
sudo apt install unison-all
Run Code Online (Sandbox Code Playgroud)
当我检查安装了哪个版本时,我在两台机器上都得到了这个:
unison version 2.48.4
Run Code Online (Sandbox Code Playgroud)
当我尝试在它们之间同步时,同步失败并且我收到消息:
解组期间的致命错误(输入值:格式错误的消息)可能是因为客户端和服务器已使用不同版本的 OCaml 编译器编译。
当我在/usr/bin/unison-2.48.4
两台机器上查看时,我得到:
3377264 Oct 31 2017 /usr/bin/unison-2.48.4 [18.04]
3866920 Feb 16 10:04 /usr/bin/unison-2.48.4 [20.04]
Run Code Online (Sandbox Code Playgroud)
因此,虽然版本号相同,但它们具有不同的大小和不同的时间戳,我的猜测是差异是导致错误的原因。
问题也贴在这里: https //www.mail-archive.com/ubuntu-bugs@lists.ubuntu.com/msg5750379.html - 但还没有解决方案。
该异口同声地安装在运行Ubuntu的LTS 18.04同步与精细的机器上齐声2.48.4支持MS Windows 10,所以这是一个我想在Ubuntu 20.04 LTS使用为好。
有没有办法安装unison的版本在 Unison 20.04 LTS 上适用于 Ubuntu 18.04 LTS?
如果“是”,如何?
有没有办法使用 Unison 自动同步多台计算机(即主文件夹中的特定目录)?如果没有,是否有替代方案可以做到这一点?我并不完全反对一直打开 Unison 并手动进行同步,但是当它打开时,您必须选择一个配置文件,该配置文件只对应一个目录,因此您必须单独同步每个。此外,IP 地址是动态的,因此必须进行编辑。这很乏味,似乎应该有更简单的方法。我错过了什么吗?有没有办法简化这个过程(可能是一个 bash 脚本)?
在我的其他计算机上,我有统一版本 2.40.102(这是可用的最新版本),在我的桌面 ubuntu 16.04 xenial 上我有统一版本 2.48.3。
尝试同步时:
kayd@Trunk:~$ unison . ssh://pi@mizu/.
...
Fatal error: Received unexpected header from the server:
expected "Unison 2.48\n" but received "Unison 2.40\n\000\000\000\000\017",
which differs at "Unison 2.40".
Run Code Online (Sandbox Code Playgroud)
各种来源告诉我安装unison-all
,我做了,但它只包含版本 2.48:
kayd@Trunk:~$ ls -l /usr/bin/unison*
lrwxrwxrwx 1 root root 24 Mai 20 22:15 /usr/bin/unison -> /etc/alternatives/unison
lrwxrwxrwx 1 root root 13 Mär 18 16:10 /usr/bin/unison-2.48 -> unison-2.48.3
-rwxr-xr-x 1 root root 2169968 Mär 18 16:10 /usr/bin/unison-2.48.3
lrwxrwxrwx 1 root root 13 Mär 18 16:10 …
Run Code Online (Sandbox Code Playgroud) 我正在运行 Ubuntu 14.04,当尝试使用选项同步目录时repeat=watch
。该目录包含~125K
文件,但我接近一致可以处理的文件数量限制。这是我收到的错误:
致命错误:服务器:文件系统观察程序错误:无法添加观察程序:达到系统限制。
可以通过将首选项“watch”设置为 false 来禁用观察者。
我通过运行 unison with 搜索了更多信息,debug=all
但这些是我能找到的与错误相关的唯一行。
知道需要更改哪些系统设置才能绕过此限制吗?
我正在尝试使用 unison 同步两台 ubuntu 机器。不幸的是,这个程序的文档并不是很有帮助。也似乎没有一个既定的论坛。所以我希望这里有人用过它。
当我第一次同步时,使用最基本的语法
unison myHome ssh://root_to_remote//myHome
Run Code Online (Sandbox Code Playgroud)
即使我的个人资料说
auto = true
times = true
Run Code Online (Sandbox Code Playgroud)
我会收到有关文件系统中每个文件的提示,即使是大小相同、修改时间相同的文件。显然,我做错了什么,因为 unison 应该在最少的用户输入下工作。
我将不胜感激任何建议...
我正在使用unison
将数据同步到服务器,我最近为此创建了一个 cronjob。cronjob 在启动时运行并将输出保存到日志文件。(以下附加信息)。
我遇到的问题是 unison 有很多输出,我只想将摘要保存到日志文件中。有没有办法做到这一点?我还没有找到一种方法来使统一变得不那么冗长,所以我想也许可以以某种方式过滤输出 - 我只是不知道如何。
谢谢!
附加信息:
现在,日志文件最终看起来像这样:
Contacting server...
Connected [//theserver//share/HDA_DATA/elrudi -> //thelaptop//home/elrudi]
Looking for changes
\ syncAll/Code/Aptana/T...avascript library code assist.txt
\ syncAll/Code/develope...nk/20070607 contacten (INDEX).xls
\ syncAll/Code/sourcefi...okexport/photos/10152112061815397
| syncAll/Code/Python/d...rawable-hdpi/ic_action_search.png
(... many many lines ...)
| syncAll/Work/2008_10 ...profile/StandardLastprofil_H0.xls
| syncAll/Work/2008_10 ...n/Load Profiles/Lastprofil_H0.xls
Waiting for changes from server
Reconciling changes
changed ----> syncAll/scriptfile1.sh
Propagating updates
UNISON 2.40.102 started propagating changes at 12:07:31.55 on 07 Oct 2015
[BGN] Updating file syncAll/scriptfile1.sh from /home/elrudi to //theserver//share/HDA_DATA/elrudi
100% 00:00 …
Run Code Online (Sandbox Code Playgroud)