使用 Unison 和 MTP 与 Android 进行双向同步

使用 Unison 和 MTP 与 Android 进行双向同步

我目前正在尝试使用 Unison 通过 MTP 将我的 PC(Ubuntu 18.04)的一些文件夹与我的智能手机(Fairphone 3,Android 9)双向同步。我以为这应该很容易,但结果却相当复杂。Unison 能够检测两个同步目录中是否存在两个版本的文件。但是,出现了两个问题:

  1. Unison 无法检测哪个文件是最新版本。我可以手动设置,但这很耗时,而且一旦出错也容易出错。
  2. Unison 无法用最新版本的文件覆盖旧版本。

我在这里记录我迄今所做的事情:

  1. 为智能手机的文件系统创建挂载目录:
mkdir /tmp/fp3
  1. 挂载手机的文件系统:
jmtpfs -o allow_other /tmp/fp3
  1. 将手机目录与 PC 上的相应目录同步。两个目录都包含文件“test”的不同版本:
unison -fat ~/Desktop/Test /tmp/fp3/SD-Card/Home/Test

最后一个命令在控制台中返回以下输出。Unison 无法检测到文件“test”的适当同步方向,我使用“>”手动设置它:

Contacting server...
Looking for changes
Reconciling changes

Desktop/Test   Home/Test          
new file ====> new file   test  [] >

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 10:29:48.42 on 06 Mar 2020
[BGN] Updating file test from /home/$USER/Desktop/Test to /tmp/fp3/SD-Card/Home/Test
Failed: Error in renaming /tmp/fp3/SD-Card/Home/Test/.unison.test.92833400e4472a77b19cca039512131e.unison.tmp to /tmp/fp3/SD-Card/Home/Test/test:
Input/output error [rename(/tmp/fp3/SD-Card/Home/Test/.unison.test.92833400e4472a77b19cca039512131e.unison.tmp)]
100%  00:00 ETAFailed [test]: Error in renaming /tmp/fp3/SD-Card/Home/Test/.unison.test.92833400e4472a77b19cca039512131e.unison.tmp to /tmp/fp3/SD-Card/Home/Test/test:
Input/output error [rename(/tmp/fp3/SD-Card/Home/Test/.unison.test.92833400e4472a77b19cca039512131e.unison.tmp)]
UNISON 2.48.4 finished propagating changes at 10:29:48.99 on 06 Mar 2020


Saving synchronizer state
Synchronization incomplete at 10:29:48  (0 items transferred, 0 skipped, 1 failed)
  failed: test

看起来 Unison 首先将文件“test”的最新版本(名为“.unison.test.92833400e4472a77b19cca039512131e.unison.tmp”)复制到旧版本“test”所在的目录中。然后它尝试重命名最新版本,但似乎失败了。您知道是什么原因导致了此错误吗?非常感谢您的帮助!

干杯

相关内容