You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从GCP虚拟机复制文件到本地遇空文件及Cloud Shell下载失败问题

GCP虚拟机文件下载问题排查与解决

一、gcloud compute scp传输空文件的原因及解决

你用sudo gcloud compute scp的方式不对——这里的sudo是给本地的gcloud命令提权,而非让远程虚拟机以root权限读取文件。如果目标日志文件是root或特定用户专属权限(比如权限为-rw-------),你的登录用户没有读取权限,scp就会生成空文件。

解决方法二选一:

  • 方法1:先在虚拟机内复制文件到可访问目录
    先通过ssh将文件复制到当前用户的主目录并修改权限:
    gcloud compute ssh orca-1 --command="sudo cp /opt/test.txt ~/test.txt && sudo chown $USER:$USER ~/test.txt"
    
    再执行scp:
    gcloud compute scp orca-1:~/test.txt .
    
  • 方法2:直接通过ssh隧道以root权限读取
    用--ssh-flag传递提权参数,让远程端以root身份读取文件:
    gcloud compute scp --ssh-flag="-t" orca-1:/opt/test.txt . --command="sudo cat /opt/test.txt"
    

二、Cloud Shell Download按钮提示“No such file”的问题

Cloud Shell的Download按钮仅能访问Cloud Shell自身实例的文件系统,不是GCP虚拟机的文件系统。你之前用cat /path能看到内容,说明这个/path是Cloud Shell实例里的路径,而非远程虚拟机的。

解决步骤:

  1. 先把GCP虚拟机的文件复制到Cloud Shell实例中(参考上面的scp命令);
  2. 在Cloud Shell的文件浏览器中找到复制过来的文件,再用Download按钮下载。

三、权限问题验证

登录GCP虚拟机,执行以下命令查看文件权限:

ls -l /opt/test.txt

如果输出中权限列是-rw-------(只有文件所有者可读),那就是权限导致的无法读取,上面的方法都能解决。注意不要随意修改系统日志文件的原始权限,避免影响后续日志采集或服务运行。

内容的提问来源于stack exchange,提问作者Spencer Woo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:01:16