【问题标题】:How to copy entire folder from Amazon EC2 Linux instance to local Linux machine?如何将整个文件夹从 Amazon EC2 Linux 实例复制到本地 Linux 机器?
【发布时间】:2012-03-08 23:23:04
【问题描述】:

我使用私钥从 ssh 连接到 Amazon 的 linux 实例。我正在尝试将整个文件夹从该实例复制到我的本地 linux 机器。

谁能告诉我正确的scp 命令来执行此操作?

或者我需要的不仅仅是scp? 两台机器都是 Ubuntu 10.04 LTS

【问题讨论】:

  • 可能更适合askubuntu.com,但根据您需要做什么,有多种方法可以做到。您可以像scp -r user@remotehost:/path/to/directory /path/to/local 一样使用裸scp 将目录从远程计算机复制到本地。如果需要保持目录同步,可以使用rsync

标签: linux ssh amazon-ec2 sftp scp


【解决方案1】:

另一种方法是

scp -i "insert key file here" -r "insert ec2 instance here" "your local directory"

我犯的一个错误是scp -ir。密钥必须在-i 之后,-r 之后。

所以

scp -i amazon.pem -r ec2-user@ec2-##-##-##:/source/dir /destination/dir

【讨论】:

  • 最后,一个包含 -i 部分的答案。这工作,谢谢!
  • 尝试执行此操作时出现错误:Load key "key.pem": bad permissions。我已经通过输入chmod 400 key.em 解决了。
【解决方案2】:

使用递归选项从客户端机器调用scp

scp -r user@remote:src_directory dst_directory

【讨论】:

  • 这个解决方案实际上帮助我尝试在不使用私钥的情况下复制数据.. scp -i *.pem -r user@remote:src_directory dst_directory
【解决方案3】:
scp -i {key path} -r ec2-user@54.159.147.19:{remote path} {local path}

【讨论】:

  • 请尽量避免仅仅将代码作为答案,并尝试解释它的作用和原因。对于没有相关编码经验的人来说,您的代码可能并不明显。
  • 是的,虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
【解决方案4】:

对于 EC2 ubuntu

转到您的 .pem 文件目录

scp -i "yourkey.pem" -r ec2user@DNS_name:/home/ubuntu/foldername ~/Desktop/localfolder

【讨论】:

    【解决方案5】:

    你甚至可以使用 rsync。

    rsync -aPSHiv remote:directory .
    

    【讨论】:

      【解决方案6】:

      这就是我将文件从亚马逊 ec2 服务复制到本地窗口 pc 的方式:

      pscp -i "your-key-pair.pem" username@ec2-ip-compute.amazonaws.com:/home/username/file.txt C:\Documents\
      

      对于 Linux 复制目录:

      scp -i "your-key-pair.pem" -r username@ec2-ip-compute.amazonaws.com:/home/username/dirtocopy /var/www/
      

      要连接到亚马逊,它需要密钥对身份验证。

      注意:

      用户名很可能是 ubuntu。

      【讨论】:

        【解决方案7】:

        我使用 sshfs 并将远程目录挂载到本地机器并做任何你想做的事情。 Here 是一个小指南,你的系统上的命令可能会改变

        【讨论】:

          【解决方案8】:

          我不喜欢对大量文件使用 scp,因为它为每个文件执行“事务”。以下更好:

          cd local_dir; ssh user@server 'cd remote_dir_parent; tar -c remote_dir' | tar -x
          

          您可以在 tar 中添加 z 标志以在服务器上压缩并在客户端解压缩。

          【讨论】:

            【解决方案9】:

            这也很重要,并且与上述答案有关。 将本地目录中的所有文件复制到 EC2。这是一个 Unix 答案。

            将整个本地文件夹复制到 EC2 中的一个文件夹中:
            scp -i "key-pair.pem" -r /home/Projects/myfiles ubuntu@ec2.amazonaws.com:/home/dir

            仅将本地文件夹的全部内容复制到 EC2 中的文件夹:
            scp -i "key-pair.pem" -r /home/Projects/myfiles/* ubuntu@ec2.amazonaws.com:/home/dir

            【讨论】:

              猜你喜欢
              • 2020-12-13
              • 1970-01-01
              • 1970-01-01
              • 2020-12-28
              • 1970-01-01
              • 2014-03-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多