Synchronization Unison使用rootalias移动根目录

Synchronization Unison使用rootalias移动根目录,synchronization,rename,alias,archive,unison,Synchronization,Rename,Alias,Archive,Unison,我用复制品更改了硬盘的安装点 /media/frisch/DATEN/Dok Daniel/ISAS至 /mnt/DATEN\u SSD/ISAS 当我想同步时,Unison说 警告:未找到这些根目录的存档文件,其规范名称为:[……]如果副本较大,则此运行中的更新检测可能需要一段时间。 我必须如何使用该选项来使用旧存档文件(包含当前同步状态的内部Unison文件),而Unison不必重新读取我的所有文件?rootalias的正确语法是 rootalias=//新主机名//新路径->//旧主机名/

我用复制品更改了硬盘的安装点

/media/frisch/DATEN/Dok Daniel/ISAS

/mnt/DATEN\u SSD/ISAS

当我想同步时,Unison说

警告:未找到这些根目录的存档文件,其规范名称为:[……]如果副本较大,则此运行中的更新检测可能需要一段时间。


我必须如何使用该选项来使用旧存档文件(包含当前同步状态的内部Unison文件),而Unison不必重新读取我的所有文件?

rootalias的正确语法是

rootalias=//新主机名//新路径->//旧主机名//旧路径

(在命令提示符下键入
hostname
,查找本地计算机的主机名。)

因此,在我的情况下,如果两个驱动器都安装在本地计算机上,我必须更改命令行,如下所示:

旧版:

unison -root "/media/frisch/DATEN_SSD/ISAS/" -root "/media/frisch/DATEN/Dok-Daniel/ISAS/"
unison -root "/mnt/DATEN_SSD/ISAS" -root "/mnt/DATEN/Dok-Daniel/ISAS" \
-rootalias "//frisch-ThinkPad-P51//mnt/DATEN_SSD/ISAS -> \
//frisch-ThinkPad-P51//media/frisch/DATEN_SSD/ISAS" \
-rootalias "//frisch-ThinkPad-P51//mnt/DATEN/Dok-Daniel/ISAS -> \
//frisch-ThinkPad-P51//media/frisch/DATEN/Dok-Daniel/ISAS"
新建:

unison -root "/media/frisch/DATEN_SSD/ISAS/" -root "/media/frisch/DATEN/Dok-Daniel/ISAS/"
unison -root "/mnt/DATEN_SSD/ISAS" -root "/mnt/DATEN/Dok-Daniel/ISAS" \
-rootalias "//frisch-ThinkPad-P51//mnt/DATEN_SSD/ISAS -> \
//frisch-ThinkPad-P51//media/frisch/DATEN_SSD/ISAS" \
-rootalias "//frisch-ThinkPad-P51//mnt/DATEN/Dok-Daniel/ISAS -> \
//frisch-ThinkPad-P51//media/frisch/DATEN/Dok-Daniel/ISAS"
然后我可以在新位置同步文件,而无需缓慢的重新读取

但是,请记住Unison作者的警告

警告:
rootalias
选项很危险,只有在确信自己知道自己在做什么时才应使用。特别是,仅当您确信(1)原始根目录和新别名都引用同一组文件,或(2)文件已重新定位,因此原始名称现在无效,将不再使用时,才应使用该名称。(如果原始根目录和别名引用不同的文件集,Unison的更新检测器可能会混淆。)在引入新的
rootalias
后,最好以交互方式运行Unison几次(禁用
批处理
标记等),并仔细检查是否合理,更新检测正在按预期工作


简短的修改,我对DHCP添加域有真正的问题,这就是rootalias不能工作的原因

例如,我试图添加指向同一台机器的rootalias,但找不到它不工作的原因。最后发现,第一次同步是在其他网络位置进行的,路由器将.lan作为域,而当前位置DHCP提供.local域。 因此,要发现旧主机名,最好

head -n3 ~/.unison/asddfrgrehrthtehrhtyrjyj
对于旧同步数据库,要检查当时的确切主机名,并执行此命令以标识当前主机名,请执行以下操作:

hostname
macbook.local
然后将其放在配置文件中,结果如下:

root = /my/Archiv
root = /Volumes/BACKUP/Archiv

rootalias = //macbook.local//my/Archiv -> //macbook.lan//my/Archive
rootalias = //macbook.local//Volumes/BACKUP/Archiv -> //macbook.lan//Volumes/BACKUP/Archive
在右边,旧位置是第二部分,这是有效的