如何通过网关ssh进行rsync?


3

我想用我在服务器上的备份rsync我的本地文件,该服务器允许从我现在只能通过网关访问。所以我想出了以下内容

rsync -avz -r --stats --progress -e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/" /home/myname/documents 

并且随着所有文件的列出而进行了一些通信,但最后的摘要显示实际上根本没有文件传输。

Number of files: 270889
Number of files transferred: 0
Total file size: 70343212868 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 7596005
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 7613770
Total bytes received: 17764

sent 7613770 bytes  received 17764 bytes  50707.87 bytes/sec
total size is 70343212868  speedup is 9217.44

想法?


也许所有文件已经同步,没有必要转移???
crayzeewulf

事实上他们不是。它看起来很像,但在这些文件夹和子文件夹中有数百个更改和几个新生成的文件。
Giant Molecular Klaus

只是为了澄清 - 文件在服务器上,我想在我的本地计算机上获取它们。
Giant Molecular Klaus

很多用户crayzeewulf:答案是rsync -avz -r --stats --progress -e“ssh gateway.dot.com ssh”server.dot.com:/home/myname/documents/ / home / myname / documents
Giant Molecular Klaus

Answers:


1
  1. 不应该的 rsync 命令是 rsync ... -e "ssh the.gateway ssh" /local/dir/ the.remote.server:/remote/dir/
  2. 消息 speedup is 9217.44 表明转移是 9217 时间优化,也就是说两台主机之间的文件差不多(如果还没有)同步。

更新:

#2不正确。看到 crayzeewulf的回答 更多解释。加速值误导我理解它有效。


谢谢答案和评论! #2:文件不同步,有数百个文件被更改,有些文件被添加。 #1:在这种情况下,我得到“bash:the.remote.server:command not found ...”
Giant Molecular Klaus

@clarkw,你原来是对的。看到 我的答案
crayzeewulf

哦是的,我现在也看到了。对不起困惑的家伙,非常感谢你的帮助!
Giant Molecular Klaus

1
@crayzeewulf:谢谢。加速值误导了我。更新了我的回答,以免混淆更多人。 :)
pynexj

7

我认为第1项 克拉克的回答 是正确的。如果你使用 ...-e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/",相应的rsync命令有一个源目录但没有目标目录。在这种情况下,根据rsync手册:

Usages with just one SRC arg and no DEST arg will list the source 
files instead of copying.

这正是发生的事情。您可以通过提供垃圾来检查这一点 -e 论点。例如:

rsync -avz --stats -e 'suq maballs' /tmp

这个命令可以正常工作。它将列出所有内容 /tmp 并在最后显示不错的统计数据:

Number of files: 28
Number of files transferred: 0
Total file size: 182 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 955
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 998
Total bytes received: 26

sent 998 bytes  received 26 bytes  2048.00 bytes/sec
total size is 182  speedup is 0.18

请注意,此处没有文件传输,就像您的示例中一样。您需要修改原始命令:

rsync -avz -r --stats --progress \
    -e "ssh gateway.dot.com ssh server.dot.com:/home/myname/documents/" \
    /home/myname/documents 

至:

rsync -avz -r --stats --progress \
    -e "ssh gateway.dot.com ssh" \
    server.dot.com:/home/myname/documents/ \
    /home/myname/documents  

当然,更换 gateway.dot.comserver.dot.com 使用适当的主机名。


哇哇!这很完美:)没有帮助,我永远不会得到这个权利。正如一句话,你的解决方案命令中有一个“太多了”。
Giant Molecular Klaus

很高兴看到它奏效了。 @clarkw第一次就做对了。另外,谢谢你报告我的错误。我修好了。请 接受答案 如果你满意
crayzeewulf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.