我正在使用 rsync 将文件从 NAS 同步到远程服务器。远程服务器上的文件似乎具有与源相同的用户、组和权限。然而 rsync 无论如何都想复制文件。
以下是从我的 NAS 到远程服务器的输出:
root@omv:/share/Music# rsync -auHs --dry-run --progress --itemize-changes --numeric-ids -e ssh /share/Music/Bond/Born user@somedomain:/home/user/media/Music/Bond/Born
sending incremental file list
cd+++++++++ Born/
<f+++++++++ Born/01 Bond - Quixote.flac
<f+++++++++ Born/02 Bond - Winter.flac
<f+++++++++ Born/03 Bond - Victory.flac
<f+++++++++ Born/04 Bond - Oceanic.flac
<f+++++++++ Born/05 Bond - Kismet.flac
<f+++++++++ Born/06 Bond - Korobushka.flac
<f+++++++++ Born/07 Bond - Alexander The Great.flac
<f+++++++++ Born/08 Bond - Duel.flac
<f+++++++++ Born/09 Bond - Bella Donna.flac
<f+++++++++ Born/10 Bond - The 1812.flac
<f+++++++++ Born/11 Bond - Dalalai.flac
<f+++++++++ Born/12 Bond - Hymn.flac
<f+++++++++ Born/13 Bond - Victory (Mike Batt Mix).flac
<f+++++++++ Born/Folder.jpg
root@omv:/share/Music#
这是 NAS 上的校验和:
root@omv:/share/Music# sha256sum 'Bond/Born/'*
d510925c0cba8b01b4d95935248ef5b863e4ed9a7e8c7e537b3acbd18767c882 Bond/Born/01 Bond - Quixote.flac
5dd40480fdc1ca7d20bfa3696c99a8b918636be2af7e59101d4cd9b04726dd44 Bond/Born/02 Bond - Winter.flac
b0c1236caf10c1a4c04ee4cce16d9b2d47e6a5fecfcc8fabd513c585a4156039 Bond/Born/03 Bond - Victory.flac
4348e1502c36b0824742e4c47544efee2b3040626fdd94f937634b55c6736c1f Bond/Born/04 Bond - Oceanic.flac
8e8bbf0817d1625a183547b31e60d9677bb454d18bb6c2b14ed7729a8acb4627 Bond/Born/05 Bond - Kismet.flac
19b0ea2b2f2ad45bb3cee3876037b238fa9a5915eccf44c766262de17085ff33 Bond/Born/06 Bond - Korobushka.flac
37fa58c31263aeb475ace4760b86d26fbf130a47bf80e51c61b4b2e0e003fa07 Bond/Born/07 Bond - Alexander The Great.flac
6ad69fe39d57b7be43538c36a674ed89492d805087319a386bb8ddda78ae364e Bond/Born/08 Bond - Duel.flac
ae3de5d17b1ad56ce1d6ef7323532c015f863ab1548c198cdac41386e56c46d3 Bond/Born/09 Bond - Bella Donna.flac
ab85604b04ad72cc01a886d61b437354ee2eb058fe5d1188199c360445d4c926 Bond/Born/10 Bond - The 1812.flac
6babc0a824b42375efa5d584dd1662687022f9830d16c70504b2e1b86c17e71a Bond/Born/11 Bond - Dalalai.flac
11f2ad493c5c0d8beee89a00e9502010421579cffc941fe3d1e72cdd70a5f12b Bond/Born/12 Bond - Hymn.flac
b15ad119dfd14a76d5fd47ce5993a6ebccec10171f1e58f5238bf830f05a3134 Bond/Born/13 Bond - Victory (Mike Batt Mix).flac
537e3ab0f6cf762319e36b19a786951d507d66dc26ea6409f4000cac508a58ab Bond/Born/Folder.jpg
这是远程服务器上的校验和:
user@10:~/media/Music$ sha256sum 'Bond/Born/'*
d510925c0cba8b01b4d95935248ef5b863e4ed9a7e8c7e537b3acbd18767c882 Bond/Born/01 Bond - Quixote.flac
5dd40480fdc1ca7d20bfa3696c99a8b918636be2af7e59101d4cd9b04726dd44 Bond/Born/02 Bond - Winter.flac
b0c1236caf10c1a4c04ee4cce16d9b2d47e6a5fecfcc8fabd513c585a4156039 Bond/Born/03 Bond - Victory.flac
4348e1502c36b0824742e4c47544efee2b3040626fdd94f937634b55c6736c1f Bond/Born/04 Bond - Oceanic.flac
8e8bbf0817d1625a183547b31e60d9677bb454d18bb6c2b14ed7729a8acb4627 Bond/Born/05 Bond - Kismet.flac
19b0ea2b2f2ad45bb3cee3876037b238fa9a5915eccf44c766262de17085ff33 Bond/Born/06 Bond - Korobushka.flac
37fa58c31263aeb475ace4760b86d26fbf130a47bf80e51c61b4b2e0e003fa07 Bond/Born/07 Bond - Alexander The Great.flac
6ad69fe39d57b7be43538c36a674ed89492d805087319a386bb8ddda78ae364e Bond/Born/08 Bond - Duel.flac
ae3de5d17b1ad56ce1d6ef7323532c015f863ab1548c198cdac41386e56c46d3 Bond/Born/09 Bond - Bella Donna.flac
ab85604b04ad72cc01a886d61b437354ee2eb058fe5d1188199c360445d4c926 Bond/Born/10 Bond - The 1812.flac
6babc0a824b42375efa5d584dd1662687022f9830d16c70504b2e1b86c17e71a Bond/Born/11 Bond - Dalalai.flac
11f2ad493c5c0d8beee89a00e9502010421579cffc941fe3d1e72cdd70a5f12b Bond/Born/12 Bond - Hymn.flac
b15ad119dfd14a76d5fd47ce5993a6ebccec10171f1e58f5238bf830f05a3134 Bond/Born/13 Bond - Victory (Mike Batt Mix).flac
537e3ab0f6cf762319e36b19a786951d507d66dc26ea6409f4000cac508a58ab Bond/Born/Folder.jpg
user@10:~/media/Music$
所有校验和看起来都正常,那么为什么 rsync 仍然想将文件复制到远程服务器呢?
TIA
答案1
空运行增量输出中的s<
表示文件将被发送,并且+
s 表示文件将被重新创建。这表明目标上不存在这些文件。
您的目标规格是user@somedomain:/home/media/Music/Bond/Born
但你向我们展示了:
user@10:~/media/Music$ sha256sum 'Bond/Born/'*
其中~
代表您的主目录。您可以使用 进行仔细检查echo ~
,您的主目录不太可能是/home
。更有可能的是类似的东西/home/user
,所以目标规范应该是类似的东西user@somedomain:/home/user/media/Music/Bond/Born
,或者只是user@somedomain:media/Music/Bond/Born
我们在远程服务器上使用相对路径作为sshd
将你带到你的主目录中,所以这将是远程服务器上你的主目录的相对路径。
另外,由于源规范 ( /share/Music/Bond/Born
) 不以 结尾/
,因此要求在目标目录中rsync
创建一个Born
目录,因此它将尝试创建一个/home/media/Music/Bond/Born/Born
.
请注意联机帮助页中的这一重要段落rsync
:
源上的尾部斜杠会更改此行为,以避免在目标上创建额外的目录级别。您可以将
/
源尾随视为“复制此目录的内容”而不是“按名称复制目录”[...]
所以命令应该是这样的:
rsync -auHs --dry-run --progress --itemize-changes --numeric-ids -e ssh \
/share/Music/Bond/Born/ \
user@somedomain:/home/user/media/Music/Bond/Born