如何将文件从Google Cloud Compute Server复制到本地计算机


11

我正在尝试从Google Cloud Compute(运行Linux Debian)下载所有服务器文件。我对SSH和Google Cloud Compute整体并不熟悉。我希望复制所有文件(类似于git pull请求)或创建一个zip文件并下载。简而言之,我需要将删除的Google Cloud服务器上的所有文件复制到我的本地计算机上。

先感谢您。


也许这可以给您另一个选择 stackoverflow.com/a/27792823/2406499
2015年

Answers:


12

尝试使用gcloud compute scp

gcloud compute scp 
  [[USER@]INSTANCE:]SRC [[[USER@]INSTANCE:]SRC …]
  [[USER@]INSTANCE:]DEST
  [--compress] [--dry-run] [--force-key-file-overwrite]
  [--plain] [--port=PORT] [--recurse] [--scp-flag=SCP_FLAG]
  [--ssh-key-file=SSH_KEY_FILE]
  [--strict-host-key-checking=STRICT_HOST_KEY_CHECKING]
  [--zone=ZONE]
  [GCLOUD_WIDE_FLAG …]
  [-h]

例如,

$ gcloud compute scp \
    my-instance-1:~/file-1 \
    my-instance-2:~/file-2 \
    ~/my-destination \
    --zone us-central2-a

或者,您也可以使用(non- gcloudsftpscp; 有关您需要指定的命令行参数的详细信息,请参见以下SO答案,为简单起见,在此引用:

sftp -o IdentityFile ~/.ssh/google_compute_engine user@host

要使用任何其他SFTP工具,类似地向其提供SSH私钥的路径,它将能够连接到实例。但是,在的情况下gcloud,它可以将主机名解析为公共IP本身。对于所有其他工具,您需要手动查找IP并直接指定IP地址。


太棒了 有没有办法删除文件,然后在复制文件时将其删除?
男人

@MCllorf —我不确定我是否遵循您的要求,能否请您打开另一个问题,提供更多详细信息以及您要实现的用例或目标?
Misha Brukman

1
对不起,我肯定可以说得更好。我的目的是将文件复制到其他位置,然后删除原始文件,以免占用不必要的空间。我已经想通了:)谢谢!
男人,

5

gcloud compute copy-files现已弃用,因此gcloud compute scp建议使用)

用法gcloud compute scp如下:

gcloud compute scp [[USER@]INSTANCE:]SRC [[[USER@]INSTANCE:]SRC …]
[[USER@]INSTANCE:]DEST [--compress] [--dry-run] [--force-key-file-overwrite]
[--plain] [--port=PORT] [--recurse] [--scp-flag=SCP_FLAG] 
[--ssh-key-file=SSH_KEY_FILE] [--strict-host-key-checking=STRICT_HOST_KEY_CHECKING]
[--zone=ZONE] [GCLOUD_WIDE_FLAG …]

例如:

$ gcloud compute scp example-instance:~/REMOTE-DIR ~/LOCAL-DIR \
      --zone us-central1-a

如果已设置区域(使用gcloud config set compute/zone ZONE或通过环境变量,则无需在上面指定区域)

另外,gcloud compute scp默认情况下不会递归复制。我们需要为此使用--recurse标志。

请参阅此处的详细文档。


2

也许您可以使用SFTP(Google在其文档中使用了Filezilla)。我对CLI不太满意,因此不喜欢Filezilla等提供的GUI选项。

以下是高级步骤:

  1. 安装并运行gcloud SDK($ gcloud init
  2. 生成SSH密钥($ gcloud compute ssh
  3. 设置FTP客户端(安装并添加密钥文件)
  4. 使用SFTP客户端连接到VM

这是Google提供的文档

另外,我已经记录了这一点,可能会有所帮助:

https://www.youtube.com/watch?v=9ssfE6ODpak


0

这对我有用

句法 :

gcloud compute scp <UserName>@<ServerName/InstanceName>:~/<FilePathFromInstance> <LocalSystemFilePath>

0

如果您通过Google Cloud Console提供的基于Web的终端连接到实例,则可以单击右上角的齿轮并选择“下载文件”,然后输入文件的完整路径,它将通过浏览器下载。上载同样。

在此处输入图片说明

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.