Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何将文件从google计算引擎复制到本地目录_Google Cloud Platform_Google Compute Engine - Fatal编程技术网

Google cloud platform 如何将文件从google计算引擎复制到本地目录

Google cloud platform 如何将文件从google计算引擎复制到本地目录,google-cloud-platform,google-compute-engine,Google Cloud Platform,Google Compute Engine,我正在尝试使用以下命令将文件从我的实例复制到本地目录 gcloud compute scp <instance-name>:~/<file-name> ~/Documents/ gcloud compute scp:~/~/文档/ 但是,它显示的错误如下所述 $USER/Documents/:是一个目录 错误:(gcloud.compute.scp)[/usr/bin/scp]已退出,返回代码为[1] 从本地目录复制到GCE工作正常 我查阅了斯坦福大学的教程和谷歌的文

我正在尝试使用以下命令将文件从我的实例复制到本地目录

gcloud compute scp <instance-name>:~/<file-name> ~/Documents/
gcloud compute scp:~/~/文档/
但是,它显示的错误如下所述

$USER/Documents/:是一个目录

错误:(gcloud.compute.scp)[/usr/bin/scp]已退出,返回代码为[1]

从本地目录复制到GCE工作正常

我查阅了斯坦福大学的教程和谷歌的文档

我还有一个例子,没有这样的问题

我有点相信这可能是SSH密钥的问题

可能出了什么问题?

如果源路径和目标路径正确,则您的命令是正确的 当我将文件从Google Compute Engine VM复制到本地计算机时,您在问题中发布的命令对我有效

$ gcloud compute scp vm1:~/.bashrc ~/Documents/
.bashrc                                          100% 3515     3.4KB/s   00:00
我还尝试从另一方(即从我的本地计算机复制到GCE VM)进行复制,它可以工作:

$ gcloud compute scp ~/Documents/.bashrc vm1:~/temp/
.bashrc                                          100% 3515     3.4KB/s   00:00

$ gcloud compute scp ~/Documents/.bashrc vm1:~/.bashrc-new
.bashrc                                          100% 3515     3.4KB/s   00:00
gcloud
依赖于
路径中的
scp
可执行文件。您提供给
gcloud scp
命令的参数将传递给
scp
二进制文件。假设您的源路径和目标路径正确,它应该可以工作

使用scp的递归复制 但是,根据您的特定错误消息,我看到只有当您试图从中复制的源路径是目录而不是文件时,才会出现这种变化。对于该特定情况,您可以传递一个
--recurse
参数(类似于常规
scp
支持的
-r
参数),该参数将递归复制指定目录下的所有文件和目录


gcloud compute scp--recurse SRC_PATH DEST_PATH

一切都很完美,只是我试图在连接到GCE的终端上而不是本地终端上运行这些命令

oyashi@oyashi-torch-instance:~$ gcloud compute scp oyashi-torch-instance:~/spring1617_assignment1.zip ~/Documents/
/home/oyashi/Documents/:是一个目录错误:(gcloud.compute.scp) [/usr/bin/scp]已退出,返回代码为[1]

但当我在本地终端上尝试这个时。事情发生了

oyashi@oyashi:~/Documents$ gcloud compute scp oyashi-torch-instance:~/spring1617_assignment1.zip ~/Documents/
spring1617_assignment1.zip 100%42KB 42.0KB/s 00:00


谢谢大家的评论和帮助。我知道这是个愚蠢的错误。但我发布了这个答案,以便其他人可以从我的愚蠢中学习

要将文件从虚拟机复制到桌面,您只需通过SSH将文件复制到虚拟机中,右上角有一个设置按钮,您可以找到下载文件选项,只需输入文件路径即可


如果是文件夹,则首先压缩文件夹,然后下载它。

如果您需要传递区域信息、项目名称,您可以在为我工作时这样做: 实例名称是您在GCP实例中选择的名称

gcloud beta compute scp --project "project_name" --zone "zone_name" instance_name:~jupyter/file_name /home/Downloads

用于将文件从Ubuntu vmware复制到本地计算机


例如:您有一个名为bhk的实例,运行一个基本的nginx服务器并复制
/var/www/html
(nginx服务目录)
中的所有文件,然后从本地机器上简单运行
wget我遇到了同样的问题。关键是您应该从本地终端而不是云终端运行scp命令。

根据,该标志似乎是
--recurse
,而不是
-r
,并且我无法使
-r
工作。这是一个SSH标志,不是
gcloud compute scp
标志。谢谢@MishaBrukman-是的,我有常规
scp
支持的
-r
参数。使用
gcloud compute scp
,它是
——而不是递归。更新了答案。如何指定答案zone@Palsri您可以通过--zone=your_instance_zone指定zone,但您不知道可以这样做。谢谢有你提到的斯坦福教程的链接吗?你也可以链接到你读过的谷歌文档。
oyashi@oyashi-torch-instance:~$ gcloud compute scp oyashi-torch-instance:~/spring1617_assignment1.zip ~/Documents/