tencent cloud

云服务器

动态与公告
产品动态
公共镜像更新动态
操作系统官方停止维护计划
产品公告
产品简介
云服务器概述
产品优势
基本概念
地域和可用区
新手指引
Service Regions and Service Providers
产品计费
计费概述
计费方式
计费项
转换计费方式
购买实例
变配费用说明
欠费说明
快速入门
通过自定义配置购买 Linux 云服务器
通过自定义配置购买 Windows 云服务器
用户指南
操作指南总览
使用限制总览
实例
竞价实例
预留实例
镜像
存储
备份与恢复
网络
安全
密码/密钥
监控与告警
运维管理
便捷功能
迁移服务器
在线迁移
迁移咨询
故障处理
无法登录云服务器问题处理思路
Windows 实例登录相关故障
Linux 实例登录相关故障
其他实例登录相关故障
实例运行故障
Linux 实例内存故障
网络故障
实践教程
云服务器选型建议
搭建环境
搭建网站
搭建应用
搭建可视化界面
本地文件上传到云服务器
网络性能测试
其他实践教程
API 文档
History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
安全与合规
访问管理
网络
常见问题
地域和可用区相关
计费相关
实例相关
存储相关
镜像相关
服务器迁移相关
网络相关
安全相关
操作系统相关
运维和监控相关
访问管理相关
NTP 服务相关
应用场景相关
服务协议
CVM Service Level Agreements
Red Hat Enterprise Linux 镜像服务协议
Public IP Service Level Agreement
词汇表
文档云服务器用户指南运维管理自定义数据设置自定义数据(Linux 云服务器)

设置自定义数据(Linux 云服务器)

PDF
聚焦模式
字号
最后更新时间: 2025-08-14 17:18:18

操作场景

在创建云服务器时,您可以通过指定自定义数据,进行配置实例。当云服务器首次启动时,自定义数据将以文本的方式传递到云服务器中,并执行该文本。如果您一次购买多台云服务器,自定义数据会在所有的云服务器首次启动时运行该文本。
本文以 Linux 云服务器首次启动时,通过传递 Shell 格式的脚本为例。

注意事项

支持自定义数据的 Linux 操作系统包括:
64位操作系统:CentOS 6.8 64位及以上、Ubuntu Server 14.04.1 LTS 64位及以上、suse42.3x86_64
32位操作系统:CentOS 6.8 32位及以上
仅限首次启动云服务器时,通过传递文本执行命令。
传递的文本必须经过 Base64 编码。请在 Linux 环境下进行编码,避免格式不兼容
使用 root 账号执行用户数据输入的文本,在脚本中不使用 sudo 命令。您创建的任何文件都将归 root 所有,如果您需要非根用户具有文件访问权,请在脚本中修改权限。
在启动时,执行自定义数据中指定的任务会增加启动服务器所需的时间。建议您等待几分钟,并在任务完成后,测试任务是否已成功执行。
本示例中,Shell 脚本必须以#!字符以及指向要读取脚本的解释器的路径(通常为 /bin/bash)开头。

操作步骤

编写 Shell 脚本

1. 执行以下命令,创建一个名称 script_text.sh 的 Shell 脚本文件。
vi script_text.sh
2. i 切换至编辑模式,参考以下内容,写入并保存 script_text.sh 脚本文件。
#!/bin/bash
echo "Hello Tencent Cloud."
注意:
Shell 脚本必须以#!字符以及指向要读取脚本的解释器的路径(通常为 /bin/bash)开头。有关 Shell 脚本的更多介绍,请参阅 Linux 文档项目 (tldp.org) 的 BASH 编程方法

使用 Base64 编码脚本文件

1. 执行以下命令,对 “script_text.sh” 脚本文件进行 Base64 编码操作。
# 对脚本进行 Base64 编码操作
base64 script_text.sh
返回以下信息:
# 编码之后的结果
IyEvYmluL2Jhc2gKZWNobyAiSGVsbG8gVGVuY2VudCBDbG91ZC4iCg==
2. 执行以下命令,验证对脚本进行 Base64 编码的返回结果。
# 对返回的结果进行Base64解码,以验证是否为需要执行的命令
echo "IyEvYmluL2Jhc2gKZWNobyAiSGVsbG8gVGVuY2VudCBDbG91ZC4iCg==" | base64 -d

传递文本

我们提供多种启动实例的方式,主要分为以下两种情况。请根据您的实际需求,进行选择:
通过官网或控制台传递
通过 API 传递
1. 参考 创建实例 购买实例,并在2.设置主机步骤中单击高级设置。如下图所示:


2. 高级设置自定义数据文本框中,输入 使用 Base64 编码脚本文件 返回的编码结果。如下图所示: 例如,使用 Base64 编码 script_text 脚本文件返回的结果为 IyEvYmluL2Jhc2gKZWNobyAiSGVsbG8gVGVuY2VudCBDbG91ZC4iCg==


3. 按照界面信息逐步操作,完成创建云服务器。
说明:
腾讯云服务器将通过开源软件 cloud-init 执行脚本。有关 cloud-init 的更多内容,请参阅 cloud-init 官方网站
当您通过 API 创建云服务器时,可以将 使用 Base64 编码脚本文件 中返回的编码结果赋值给 RunInstances 接口的 UserData 参数,以此来传递文本。 例如,创建一个带 UserData 参数的云服务器的请求参数,其示例如下:
https://cvm.tencentcloudapi.com/?Action=RunInstances
&Version=2017-03-12
&Placement.Zone=ap-guangzhou-6
&ImageId=img-pmqg1cw7
&UserData=IyEvYmluL2Jhc2gKZWNobyAiSGVsbG8gVGVuY2VudCBDbG91ZC4iCg==
&<公共请求参数>

查看执行日志

成功创建服务器后,您可执行以下命令,查看脚本执行日志:
cat /var/log/cloud-init-output.log


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈