嗨,自从 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 安装的目标驱动器出了什么问题导致它默默地失败了!