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/