1.文件名中带有特殊字符的问题
文件名中是否有特殊字符?根据您要写入这些文件的文件系统,例如,它们可能不允许您在文件前加上点(.
)。
2. rsync修改时间和webdav2的问题
我碰到了此博客文章,其中描述了rsync
一个问题,该问题是在通过webdav2挂载的box.com目录写入/跟踪文件的修改时间时出现问题。
问题在已挂载的文件系统中显示如下:
david@sydney:~/Pictures$ ls -l /mnt/box/bwca/08/09/IMG_3084.CR2
-rw-r--r-- 1 david david 12564061 Aug 14 16:08 /mnt/box/bwca/08/09/IMG_3084.CR2
david@sydney:~/Pictures$ ls -l 2012/08/09/IMG_3084.CR2
-rw-rw-r-- 1 david david 12564061 Aug 9 13:00 2012/08/09/IMG_3084.CR2
同一篇文章显示了一种解决方法:
$ rsync -avhP --size-only --bwlimit=64 2012/08 /mnt/box/bwca/
这是可以使用的好方法rsync
,但是它只是根据文件的大小而不是校验和来比较文件。
3. davfs2(WebDAV)的问题
我遇到了标题为:通过davfs2进行rsync的线程?在sourceforge上的WebDAV(davfs)论坛中。有人在询问类似的情况,他们想使用WebDAV挂载在线存储提供程序,并通过WebDAV对已挂载的存储执行rsync。这就是WebDAV的开发人员之一(Werner Baumann)关于这个话题的。
维尔纳回应摘录
Werner继续提出以下建议
在这种情况下,这可能是不利的。当rsync读取远程主机上的文件时,必须先由davfs2将其传输到本地缓存中(如果尚不存在)。这可能会使该过程真正且不必要地变慢。由于rsync在您的情况下只能作为复杂的复制程序,因此最好使用cp代替。cp有一个选项(-u)仅复制比davfs2文件系统(= smartdrive)中的文件新的文件,并且它不需要读取文件,而仅读取文件元数据(如mtime)。
诸如“ cp -pru directory / to / backup dav /”之类的命令可以完成此任务。它不下载文件(就像rsync一样,但是我不确定)(请查看cp和rsync的手册)。
选项?
因此,正如@Anthon所建议的那样,您可以使用该cp -u
方法来复制文件。意识到此方法仅将文件的大小作为比较因素,因此它并不完全可靠。
比较文件时,您不应使用任何只看修改时间的东西cp -pru
。Werner解释了为什么在此线程中:
摘录与国防部时间
当您卸载davfs2文件系统并在以后稍后再次安装时,文件时间可能已根据来自服务器的时间信息而更改。诸如cp -pu和rsync之类的工具无法依靠这些时间来确定哪些文件已更改。
因此,鉴于围绕修改时间的各种问题,使用纯校验和的方法似乎更合适:
$ rsync -avvz --omit-dir-times --checksum --human-readable --progress <local dir> <remote dir>
--max-size=250M --exclude '.*'
。我确定cp
可以做到这一点...也许可以通过将find的输出传递给cp来实现?但是我还不知道该怎么做。如果我们提出解决方案,我会尝试cp -ru
。谢谢