【问题标题】:rsync: how to replicate full directory structurersync:如何复制完整的目录结构
【发布时间】:2019-09-03 10:16:56
【问题描述】:

我想使用 rsync 将一些目录从远程服务器同步到我的本地计算机。为了使文件井井有条,我希望 rsync 使用所有父目录创建/复制整个路径。

我正在使用带有证书文件的 ssh,因此不需要手动登录。

如果我像下面这样使用它,它会复制 file.crt 但不创建父目录:

rsync -ave ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/

如果我尝试使用 -R --recursive 选项,它会失败并出现以下错误:

 rsync -ave --recurisive ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/

或使用 -R

 rsync -aveR ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/

意外的远程参数:user1@10.10.10.10:/opt/dir/data/file.crt

rsync 错误:main.c(1361) [sender=3.1.2] 处的语法或使用错误(代码 1)

提前感谢您的帮助

【问题讨论】:

    标签: rsync


    【解决方案1】:

    我在这里看到两个问题:首先,-R--recurisive 选项相同(并且“recurisive”拼写错误)。 -R--relative 的缩写形式,这就是您想要的(它包括源的完整路径)。有一个 --recursive 选项(简称:-r),但 -a 暗示了这一点,在这里也无关紧要,因为您复制的是单个文件,而不是目录。

    其次,当您添加新选项时,您将其放在-avessh 之间,但ssh-e 选项的参数,因此它必须紧跟在@987654332 之后@。你写它的方式,rsync-R 或其他任何东西解释为-e 的参数,并将ssh 解释为一个完全独立的参数,因此完全混淆了。

    但无论如何你都不应该需要-e ssh——这几乎总是默认设置,所以你应该可以不使用它。因此,试试这个:

    rsync -avR user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
    

    如果这不起作用,请尝试以下方法:

    rsync -avR -e ssh user1@10.10.10.10:/opt/dir/data/file.crt /home/user1/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多