![找出rsync重传文件的原因](https://linux22.com/image/121000/%E6%89%BE%E5%87%BArsync%E9%87%8D%E4%BC%A0%E6%96%87%E4%BB%B6%E7%9A%84%E5%8E%9F%E5%9B%A0.png)
我想将 Linux 服务器 (reiserfs) 中的目录备份到连接到运行 MacOSX 10.13 的 MacBook 的外部 HDD (hfs) 上。
它是 Gentoo Linux,我安装了 rsync 版本 3.1.2。在 MacOSX 上,我通过 Homebrew 安装了 rsync 3.1.2。
现在,我使用 flag -aAxzPiv --delete-delay
。早些时候我也有过,-X
但因为这个上游 rsync 3.1.2 错误我把它去掉了。我连接到root
Linux 服务器以获得读取所有内容的所有权限,并像sudo
在 MacOSX 上一样运行它。即它是这样的:
sudo rsync -aAxzPiv --delete-delay root@server:/mnt/data6 .
它似乎大部分工作,除了一些目录/文件总是会被重新传输(在某些情况下先删除然后传输,尽管我有--delete-delay
)。这就是我正在努力解决的问题。
所以,第一个问题:是否有一个很好的标志可以为rsync
我提供为什么它认为应该重新传输/删除的信息?有-v
, --info
,--debug
这可能会给我这个,但是这些的确切标志是什么? (编辑:谢谢 meuh,我-i
现在添加了,这有点帮助,尽管它仍然有限。)
我想这可能是一个问题,因为它没有正确保存目标文件上的时间。或者也许在目录上。例如我看到这个:
...
>f..t....... .../Documents/Topologische Spiele und resourcenbeschränkte Baire-Kategorie.pdf
332,553 100% 15.86MB/s 0:00:00 (xfr#87, ir-chk=1062/50500)
...
>f.st..g.... .../OpenLieroX/Tools/GameCompiler/src/main.cpp
14,813 100% 14.13MB/s 0:00:00 (xfr#88, ir-chk=1004/198016)
...
>f.st..g.... .../openlierox/tools/GameCompiler/src/main.cpp
3,891 100% 3.71MB/s 0:00:00 (xfr#95, ir-chk=1003/410613)
...
>f.st....... .../Robot/Main/uMainForm.o
276,724 100% 330.77kB/s 0:00:00 (xfr#93, ir-chk=1455/198859)
...
*deleting .../Reise/SF2015/A1602080010(Zeyer).pdf
*deleting .../Reise/SF2015/
...
.../Reise/SF2015/
.../Reise/SF2015/A1602080010(Zeyer).pdf
126,218 100% 100.29kB/s 0:00:01 (xfr#566, ir-chk=1001/470897)
...
我猜有多个问题。例如,...resourcenbeschränkte...
可能是 Unicode 编码问题。然后openlierox
vsOpenLieroX
可能会出现问题,因为目标文件系统不区分大小写。我不确定rsync
在这种情况下应该如何表现,是否有任何特殊的逻辑。然后,例如,由于未知原因,文件uMainForm.o
总是被重新传输(但不会首先删除)。然后,SF2015
首先删除包含所有文件的目录,然后重新传输。
关于正在删除的目录。在服务器上,stat
该目录上的 a 给了我:
$ stat .../texte1
File: '.../texte1'
Size: 8664 Blocks: 17 IO Block: 4096 directory
Device: 811h/2065d Inode: 181281 Links: 45
Access: (0755/drwxr-xr-x) Uid: ( 1002/ gz) Gid: ( 100/ users)
Access: 2016-07-21 03:19:33.000000000 +0200
Modify: 2016-02-06 18:58:10.000000000 +0100
Change: 2016-07-21 03:19:33.000000000 +0200
Birth: -
在 Mac 上,我得到这个:
$ stat .../texte1
16777225 8884695 drwxr-xr-x 236 (1002) _lpoperator 0 8024 "Nov 4 14:06:39 2017" "Nov 4 14:02:07 2017" "Nov 4 14:02:07 2017" "Feb 6 18:58:10 2016" 4096 0 0 .../texte1
我猜它对时代感到困惑。
那么,下一个问题:我应该使用什么标志?也许我会通过在源端重命名来手动解决不区分大小写的问题(这应该很少见)。也许对于 Unicode 问题也是如此。但我不太明白删除/重传。
另外,也许我应该rsync
在 MacOSX 上使用另一个版本?最初的 MacOSXrsync
版本是 2.6.9,并且有一些其他标志,我发现还有更多问题,但我不完全确定。