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

如何通过GCP启动脚本在Ubuntu16.04实例创建时于主目录生成文件夹?

问题分析与解决

核心原因

GCP虚拟机的启动脚本默认以root用户身份执行,你脚本里的~/test实际是在root的主目录(/root/test)下创建文件夹,而非你登录后使用的普通用户主目录,所以登录后看不到该文件夹。另外你没找到相关日志记录,是因为启动脚本的日志默认存在/var/log/startupscript.log,并非你之前查看的日志位置。

解决方法

方法1:直接指定普通用户主目录的绝对路径

假设你使用的是GCP默认镜像的普通用户(比如ubuntu),修改启动脚本为:

#!/bin/bash
mkdir -p /home/ubuntu/test

方法2:切换到目标用户执行命令

通过su命令切换到普通用户后再创建文件夹,确保路径和权限匹配:

#!/bin/bash
su - ubuntu -c "mkdir -p ~/test"

方法3:指定启动脚本的执行用户

创建实例时添加--metadata startup-script-user=ubuntu参数,让启动脚本直接以目标普通用户身份执行,此时~/就会指向该用户的主目录:

gcloud compute instances create example-instance \
  --image-family $image \
  --image-project $projectID \
  --machine-type $type_machine \
  --metadata startup-script='#!/bin/bash mkdir -p ~/test' \
  --metadata startup-script-user=ubuntu

验证步骤

  1. 查看启动脚本的执行日志,确认操作是否成功:
cat /var/log/startupscript.log
  1. 登录实例后,前往对应目录检查文件夹是否存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:29:56