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

Google Cloud Compute Engine启动脚本失败:wget及解压文件未生成

解决GCE启动脚本中文件下载与解压失败的问题

我来帮你排查下问题所在,你的启动脚本里有几个容易踩坑的地方,还有一个极易被忽略的执行环境细节:

1. Wget命令参数错误

你原来的wget写法不符合语法规范:

wget [DOMAIN]/file.tar.gz ~/file.tar.gz

Wget中如果要指定文件保存路径/名称,必须用-O参数,否则它会把第二个参数当成另一个待下载的URL,直接导致下载失败。正确写法应该是:

wget [DOMAIN]/file.tar.gz -O ~/file.tar.gz

2. Tar解压命令的路径参数错误

你的tar命令也存在参数逻辑问题:

tar -vzxf ~/file.tar.gz ~/

直接把~/放在命令末尾,tar会把解压内容放到当前目录下名为~/的子目录里,而非你预期的主目录。要指定解压到主目录,需要用-C参数明确目标路径:

tar -vzxf ~/file.tar.gz -C ~/

3. 启动脚本的执行用户(最关键的隐藏问题!)

GCE的启动脚本默认是以root用户身份执行的,所以这里的~/对应的是root的主目录/root/,而非你登录的普通用户主目录(比如/home/your-username/)。这就是为什么你登录普通用户后完全看不到文件的核心原因!

修正后的完整启动脚本

如果要把文件下载到你的普通用户(比如用户名是luke)主目录,建议用绝对路径明确指定,同时修正权限:

sudo apt-get update -y
sudo apt-get install python3-pip -y
sudo pip3 install pymysql sympy

# 替换成你的实际用户名
USERNAME="luke"
TARGET_DIR="/home/${USERNAME}"
FILE_PATH="${TARGET_DIR}/file.tar.gz"

# 下载文件并修正所属用户
wget [DOMAIN]/file.tar.gz -O ${FILE_PATH}
chown ${USERNAME}:${USERNAME} ${FILE_PATH}

# 解压到目标目录
tar -vzxf ${FILE_PATH} -C ${TARGET_DIR}

快速验证方法

你可以登录实例后切换到root用户,看看文件是不是跑到root目录里了:

sudo su -
ls /root/

如果能看到相关文件,就坐实了是执行用户环境导致的问题。

内容的提问来源于stack exchange,提问作者Luke Richards

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:28:31