我在RAID1中有一个Dlink NAS (dns-323),用于备份家庭照片、视频和其他数据。每当我们向NAS添加大量新文件时,我也会手动地将rsync转到Atom Linux小框上的专用备份驱动器上。我最终在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)整个下午我都在谷歌搜索,尝试不同的东西,但到目前为止还没有解决我的问题。我使用“触摸”命令成功地修改了NAS上一个或两个文件的时间,只是为了证明这是可以完成的,因为我认为rsync必须这样做。我已经尝试过作为我的用户和根用户来执行此操作。我的意思是,我运行了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如果不能简单地保存时间戳并不是绝对重要的,但它似乎应该是可能的--我只是有点困惑。
提前谢谢。如果我能提供更多的信息,请告诉我。
发布于 2013-09-09 15:58:10
因为这次我赢得了我的“卷尾草”徽章。拍背
我学到的是:
我的解决方案
1)从dns-323中删除左侧硬盘驱动器,这是RAID1卷的一半。
2)安装(ext3)这个驱动器使用适配器到我运行rsync的机器上。
3)执行上述还原的rsync命令。我删除了--删除选项,这实际上不应该在那里,我添加了一个选项--只有大小。只有大小的选项使得时间戳基本上是唯一被恢复的东西,因为文件已经恢复正常。
4)从Atom机器卸载左侧驱动器,并将该驱动器返回到dns-323,同时也移除右侧驱动器。正确的驱动器需要被删除,以便dns-323识别RAID卷被降级。
5)将正确的驱动器重新添加到dns-323中,并告诉它重建RAID卷。
6)现在所有的时间戳都是好的。
一种可能的替代解决方案:
我已经阅读了很多关于rsync和NFS/Samba/cifs的文章,了解到这个问题可能与NFS服务器(dns-323)的权限有关。在内部,dns-323中的用户/组ids是501/501。我在Atom框上挂载dns-323的方式不会允许rsync正确地设置时间戳。不过,我确实相信,将我在Atom框上的用户帐户更改为拥有501/501的uid/gid将是有效的。我的用户拥有默认的1000/1000,根用户拥有0/0的IIRC。
https://stackoverflow.com/questions/18433709
复制相似问题