我终于将我的台式机从 Windows Vista 转换为 Lubuntu 13.04。尽管我花了整个下午在各种论坛上搜索,但还是无法让 unison 文件同步程序(版本 2.40.65)在 Lubuntu 机器上运行。
以下是基本设置:Lubuntu 台式机(DTM);Dlink 网络访问存储设备(NAS),它作为 /mnt/nas 安装在 DTM 上(在 fstab、cifs、默认值中)。
Unison 可以从 NAS 传输到 DTM。但是,如果在 DTM 上创建或更新文件,unison 无法传输到 NAS。它会创建一个新的文件 .unison。新文件.XXXX.unison.tmp 在 NAS 目标目录中具有正确的大小,但无法重命名。确切的错误消息是失败:消化 .unison 时出错。新文件.XXXX.unison.tmp .unison.新文件.XXXX.unison.tmp:权限被拒绝。如果我在 sudo 下运行 Unison,那么来自 DTM 的更改会传播到 NAS。但是,来自 NAS 端的更改会以 root 身份复制到 DTM,这给我带来了无穷的麻烦
顺便说一句,在我的旧 Windows Vista 上,我在 Cygwin 下运行 Unison,没有遇到任何问题。
非常感谢您的回答。谢谢。
答案1
我找到了答案。事实证明,这与 Unison 无关,但与 NAS 在本地 Linux 机器上的安装方式有关。
在/etc/fstab
,我用过
//192.168.1.61/Volume_1 /mnt/nas cifs defaults 0 0
现在我正在安装使用
//192.168.1.61/Volume_1 /mnt/nas cifs guest,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0644,dir_mode=0755 0 0
Unison 现在运行顺利。关键是挂载的uid
和gid
应该与本地机器上的uid
和相匹配gid
,而使用该选项时情况并非如此defaults
。因此 Unison 遇到了各种与权限相关的问题。
我希望这对遇到类似问题的其他人有所帮助。
答案2
还有一个可能值得分享的替代解决方案:如果您使用unison
它-dontchmod
,对我来说运行良好。
请注意,您不能直接同步权限,并且需要另外指定-perms 0
,至少对于我的版本而言unison
。
此外,如果我指定该标志,您的解决方案似乎会失败nounix
。不过,这可能是由于我的设置。(我想将最后一部分作为评论,但我没有足够的代表)