我很难将文件复制到我的Google计算引擎。 我正在Google Compute Engine上使用ubuntu服务器。
我是从我的OS Xterminal做到这一点,我已经使用gcloud授权。
local:$ gcloud compute copy-files /Users/Bryan/Documents/Websites/gce/index.PHP example-instance:/var/www/html --zone us-central1-a Warning: Permanently added '<IP>' (RSA) to the list of kNown hosts. scp: /var/www/html/index.PHP: Permission denied ERROR: (gcloud.compute.copy-files) [/usr/bin/scp] exited with return code [1].
Symfony2caching重新创build – 写入权限失败
C#从“高级安全设置”获取“应用于”信息的目录
在Windows XP上:如何创build一个只有一个特定目录的读取权限的用户?
内核模块执行中的不同权限
PHP exec()命令权限被拒绝
通过Gitolite和post-receive hook部署节点应用程序
我应该写一个临时文件临时目录吗? 或者写一个临时文件到最终目录?
在实例名称前插入root@
local:$ gcloud compute copy-files /Users/Bryan/Documents/Websites/gce/index.PHP root@example-instance:/var/www/html --zone us-central1-a
这不起作用的原因是您的用户名不具有GCE VM实例的权限,因此无法写入/var/www/html/ 。
请注意 ,由于这个问题是关于Google Compute Engine虚拟机的,因此您不能以root身份直接将SSH直接连接到虚拟机,也不能以gcloud compute copy-files root身份直接复制文件,原因相同: gcloud compute copy-files使用依靠ssh进行身份验证的scp 。
可能的解决方案:
(也由Faizan在评论中提出),这个解决方案每次都需要两步
使用gcloud compute copy-files来传输用户可以写入的文件/目录,例如/tmp或/home/$USER
通过gcloud compute ssh或通过控制台上的SSH按钮登录到GCE VM,并使用sudo进行复制以获得适当的权限:
# note: sample command; adjust paths appropriately
sudo cp -r $HOME/html/* /var/www/html
一次性设置:直接给你的用户名写入权限/var/www/html ; 这可以通过几种方式来完成; 这里有一个方法:
# make the HTML directory owned by current user,recursively
sudo chown -R $USER /var/www/html
现在你可以运行复制一步:
gcloud compute copy-files /Users/Bryan/Documents/Websites/gce/index.PHP example-instance:/var/www/html --zone us-central1-a
我使用bash脚本从本地机器复制到远程GCE机器上的可写目录; 然后使用ssh移动文件。
SRC="/cygdrive/d/mysourcedir" TEMP="~/incoming" DEST="/var/my-disk1/my/target/dir"
您还需要设置GCE_USER和GCE_INSTANCE
echo "=== Pushing data from $SRC to $DEST in two simple steps" echo "=== 1) copy to a writable temp directoy in user home" gcloud compute copy-files "$SRC"/*.* "${GCE_USER}@${GCE_INSTANCE}:$TEMP" echo "=== 2) Move with 'sudo' to destination" gcloud compute ssh ${GCE_USER}@${GCE_INSTANCE} --command "sudo mv $TEMP/*.* $DEST"
在我的情况下,我不想chown目标目录,因为这会导致与其他脚本的其他问题…
UPDATE
gcloud compute copy-files已弃用 。
改用:
$ gcloud compute scp example-instance:~/REMOTE-DIR ~/LOCAL-DIR --zone us-central1-a
更多信息: https : //cloud.google.com/sdk/gcloud/reference/compute/scp
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。