rsync 在 cifs 挂载驱动器上创建 0 字节文件

rsync 在 cifs 挂载驱动器上创建 0 字节文件

嗨,自从 Ubuntu 10.04 以来,我一直使用 rsync 将文件从我的外部驱动器备份到 cifs 挂载的共享驱动器

现在使用 13.04,我使用以下命令时出现奇怪的行为

rsync -av /media/hari/MyExtDrive/  /home/MyDFSMountedCIFSDrive/DataBackup/

“MyDFSMountedCIFSDrive”使用选项安装

sudo mount -t cifs //10.1.1.11/dfsroot/archive/ /home/MyDFSMountedCIFSDrive -o user=hari,rw,nosuid,gid=1000,uid=1000,hard

现在,当我使用 rsync 命令时。整个目录结构已创建。我在子目录中有几个文件,扩展名为“img”。子目录也已正确创建。但对于这些子目录中的文件,我有一个文件,它是零字节的,以“.”开头,并有一个奇怪的十六进制扩展名

实际文件

P_248509-A_060.img   36MB

相反,rsync 创建(注意开头的“。”)

.P_248509-A_060.img.CluiPK  0 bytes

有人知道发生了什么事吗

我可以使用“cp -R”准确复制这些文件。我还没有看到 rsync 在我的 10.04 系统中这样做。有什么想法吗?

答案1

所以我让它工作了,但我仍然不知道它为什么失败。

首先,我了解到 0 字节的 .P_248509-A_060.img.CluiPK 文件是一个临时文件。rsync 创建这些临时文件,然后将其移动到最终名称。

我之所以能解决这个问题,是因为在 10.04 机器上,类似的 rsync 给出了消息,说无法将 .P_248509-A_060.img.CluiPK 重命名为 P_248509-A_060.img

我也读过这个问题这里第二个答案表明 .XXXX 文件是临时文件

最后,当我知道这些都是临时文件时,我谷歌了一下,找到了这个解决方案在超级用户上

因此用以下命令替换

rsync -av /media/hari/MyExtDrive/  /home/MyDFSMountedCIFSDrive/DataBackup/ -T /tmp

或者

rsync -av /media/hari/MyExtDrive/  /home/MyDFSMountedCIFSDrive/DataBackup/ --inplace

文件复制准确且完整。

现在我的问题是,为什么 rsync 没有告诉我它由于临时文件的问题而失败了。我很困惑,因为它默默地失败了。我不知道源磁盘或 cifs 安装的目标驱动器出了什么问题导致它默默地失败了!

相关内容