rsync“未能在”XYZ“上设置时间:没有这样的文件或目录(2)

时间:2013-08-25 21:06:00

标签: backup rsync nas

我在RAID1中有一个Dlink NAS(dns-323),用于备份家庭照片,视频和其他一些数据。每当我们向NAS添加大量新文件时,我还会在一个小的Atom Linux机器上手动rsync到专用的备份驱动器。我终于在NAS上丢失了一个驱动器并且通过我自己的失误,也丢失了整个音量。没问题,这就是备份驱动器的用途。在更换坏驱动器并创建新的RAID卷之后,我反过来使用相同的rsync命令将文件还原到NAS。这很好用,除了命令完成后,我注意到它没有保留时间戳。时间戳保留在NAS->备份方向,但不保留在备份 - > NAS方向。

我使用这些选项在Atom Linux机器上运行rsync命令(这确实保留了时间戳):

rsync --archive --human-readable --inplace --numeric-ids --delete /mnt/dns-323 /mnt/dlink_backup --progress --verbose --itemize-changes

从备份恢复卷的反向命令(没有保留时间戳)非常相似:

rsync --archive --human-readable --inplace --numeric-ids --delete /mnt/dlink_backup/dns-323/ /mnt/dns-323/ --progress --verbose --itemize-changes

实际上会恢复文件,但会出现许多错误,如:

rsync: failed to set times on "/mnt/dns-323/Rich/Code/.emacs": No such file or directory (2)

我下午大部分时间都在谷歌上搜索不同的东西,但到目前为止还没有解决我的问题。我使用'touch'命令成功修改NAS上一个或两个文件的时间,只是为了证明它可以完成,因为我认为这是rsync必须做的一件事。我已尝试以我的用户身份和root身份执行此操作。我的意思是我运行sudo rsync .....以及rsync --rsync-path='/usr/bin/sudo /usr/bin/rsync' .....,其中.....是前面提到的所有参数。我的/etc/fstab分别包含NAS和备份驱动器的这些条目:

# the dns-323
//192.168.1.202/Volume_1 /mnt/dns-323 cifs guest,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
# the dlink_backup drive
/dev/sdb /mnt/dlink_backup ext3 defaults 0 0

保留时间戳并不是绝对至关重要的,如果它不能完成,但它似乎应该是可能的 - 我只是难倒了。

提前致谢。如果我能提供任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

由于这个原因,我获得了“风滚草”徽章。 回拍自己

我学到了什么:

我的解决方案

1)从dns-323中移除了左侧硬盘,这是RAID1卷的一半。

2)使用USB-to-SATA适配器将此驱动器安装(ext3)到我运行rsync的机器上。

3)执行上面概述的恢复的rsync命令。我删除了--delete选项,它实际上不应该存在,我添加了选项--size-only。仅限大小的选项使得时间戳基本上是唯一被恢复的东西,因为文件已经正确恢复。

4)从Atom机器卸下左侧驱动器并将该驱动器返回到dns-323,同时卸下右侧驱动器。需要删除正确的驱动器,以便dns-323识别出RAID卷已降级。

5)将正确的驱动器重新添加到dns-323并告诉它重建RAID卷。

6)所有时间戳现在都很好。

可能的替代解决方案:

我已经阅读了足够的关于rsync和NFS / Samba / cifs的内容,以了解此问题可能与NFS服务器(dns-323)上的权限有关。在内部,dns-323中的用户/组ID为501/501。没有我在dom-box上安装dns-323的排列方式将允许rsync正确设置时间戳。我确实认为,在Atom框中更改我的用户帐户以使uid / gid为501/501会有效。我的用户有默认的1000/1000,root用户有0/0 IIRC。