tencentcloud-cvm-skill

Review·Scanned 2/17/2026

This skill is a Tencent Cloud CVM ops toolkit for creating, querying, and managing CVM instances. It runs shell/CLI tools (tccli, sshpass), requires TENCENTCLOUD_SECRET_ID/TENCENTCLOUD_SECRET_KEY, and stores instance passwords in ~/.tencent_cvm_passwords.

from clawhub.ai·v2.0.0·106.4 KB·0 installs
Scanned from 1.0.2 at 3bcd8d4 · Transparency log ↗
$ vett add clawhub.ai/gardenchan/tencentcloud-cvm-skillReview findings below

腾讯云 CVM 运维工具

基于 Bash + tccli 的腾讯云 CVM 云服务器运维工具集,支持实例创建资源查询服务器运维三大核心功能。

快速开始

1. 安装依赖

# tccli(腾讯云命令行工具)
pip3 install tccli

# jq(JSON 解析)
brew install jq        # macOS
apt install jq         # Ubuntu

# sshpass(SSH 密码认证,运维操作需要)
brew install hudochenkov/sshpass/sshpass   # macOS
apt install sshpass                         # Ubuntu

2. 配置凭证

export TENCENTCLOUD_SECRET_ID="your-secret-id"
export TENCENTCLOUD_SECRET_KEY="your-secret-key"

3. 典型工作流

# 1. 查询资源准备创建实例
./scripts/query/describe-zones.sh                    # 查可用区
./scripts/query/describe-images.sh --platform Ubuntu # 查镜像
./scripts/query/describe-vpcs.sh                     # 查 VPC

# 2. 创建实例(密码自动保存)
./scripts/lifecycle/create-instance.sh \
  --zone ap-guangzhou-3 \
  --instance-type S5.MEDIUM2 \
  --image-id img-xxx \
  --vpc-id vpc-xxx \
  --subnet-id subnet-xxx \
  --sg-id sg-xxx

# 3. 更新实例 IP
./scripts/utils/update-instance-ip.sh --instance-id ins-xxx --auto

# 4. 运维操作(只需 instance-id)
./scripts/ops/ssh-connect.sh --instance-id ins-xxx
./scripts/ops/system-info.sh --instance-id ins-xxx

功能模块

scripts/
├── lifecycle/    # 实例生命周期:创建、启动、停止、重启、销毁
├── query/        # 资源查询:实例、镜像、VPC、子网、安全组、可用区
├── ops/          # 服务器运维:SSH、远程执行、系统信息、磁盘、进程、服务、日志、安全、传输、网络
├── utils/        # 辅助工具:密码管理、IP 更新、配置查看
└── common.sh     # 公共函数库

实例生命周期

脚本功能示例
recommend-instance.sh场景推荐创建--scene blog-small
create-instance.sh手动创建实例--zone ap-guangzhou-3 --instance-type S5.MEDIUM2
start-instance.sh启动实例--instance-id ins-xxx
stop-instance.sh停止实例--instance-id ins-xxx [--force]
reboot-instance.sh重启实例--instance-id ins-xxx
terminate-instance.sh销毁实例--instance-id ins-xxx

场景推荐

根据使用场景自动推荐配置:

./scripts/lifecycle/recommend-instance.sh --scene blog-small    # 个人博客
./scripts/lifecycle/recommend-instance.sh --scene web-medium    # 中型Web应用
./scripts/lifecycle/recommend-instance.sh --list-scenes         # 查看所有场景
场景适用配置
blog-small个人博客 (日PV<5K)1核1G
blog-medium中型博客 (日PV 5K-50K)2核4G
web-small小型Web (日PV<10K)2核2G
web-medium中型Web (日PV 10K-100K)4核8G
api-small小型API (QPS<100)2核4G
dev开发测试2核2G
database-small小型数据库2核4G + 50G数据盘

资源查询

脚本功能常用参数
describe-regions.sh查询地域--available
describe-instances.sh查询实例--instance-id, --name
describe-zones.sh查询可用区--region
describe-instance-types.sh查询机型--zone, --family, --type
describe-images.sh查询镜像--instance-type, --platform
describe-vpcs.sh查询 VPC--vpc-id
describe-subnets.sh查询子网--vpc-id, --zone
describe-security-groups.sh查询安全组--sg-id, --name

服务器运维

优先级策略:运维操作优先使用 ops 脚本(SSH + 密码直连执行),仅在脚本无法满足需求时才使用 tccli 接口调用。

安全限制:ops 目录仅使用已有的预定义脚本,不支持动态生成新脚本。

重要原则:运维写操作(如停止、重启、销毁实例,服务管理,文件传输等)需要人工确认后执行。

所有运维脚本只需 --instance-id 即可自动获取密码和 IP

脚本功能特殊参数
ssh-connect.shSSH 连接--port
remote-exec.sh远程命令(仅支持预定义安全命令)--cmd <command>
system-info.sh系统信息-
disk-usage.sh磁盘检查--threshold <n>
process-monitor.sh进程监控--top <n>, --filter
service-manage.sh服务管理--service, --action
log-viewer.sh日志查看--file, --lines, --follow
security-check.sh安全检查-
file-transfer.sh文件传输--upload/--download, --local, --remote
network-check.sh网络检查--target

remote-exec 安全命令集

remote-exec.sh 仅支持以下预定义的只读命令或 ops 目录下的脚本:

分类命令用途
系统信息uptime系统运行时间和负载
uname -a内核和系统信息
hostname主机名
cat /etc/os-release操作系统版本
date系统时间
timedatectl时区和时间同步状态
CPUcat /proc/loadavg系统负载
top -bn1 | head -20CPU 和进程概览
mpstatCPU 使用统计
nprocCPU 核数
lscpuCPU 详细信息
内存free -h内存使用情况
cat /proc/meminfo内存详细信息
vmstat虚拟内存统计
磁盘df -h磁盘使用情况
df -iinode 使用情况
lsblk块设备列表
fdisk -l磁盘分区信息
du -sh <path>目录大小
进程ps aux进程列表
ps aux | head -20前 20 个进程
pgrep <name>按名称查找进程
pidof <name>获取进程 PID
网络ip addr网络接口信息
ip route路由表
netstat -tlnpTCP 端口监听
ss -tlnp套接字统计
ping -c 4 <host>网络连通性测试
curl -I <url>HTTP 头信息
dig <domain>DNS 解析
traceroute <host>路由追踪
服务systemctl status <service>服务状态
systemctl is-active <service>服务是否运行
systemctl list-units --type=service服务列表
日志tail -n 100 <logfile>查看日志末尾
head -n 100 <logfile>查看日志开头
journalctl -u <service> -n 100服务日志
dmesg | tail -50内核日志
安全who当前登录用户
w用户活动
last -n 20登录历史
cat /etc/passwd用户列表
cat /etc/group用户组列表
其他env环境变量
crontab -l定时任务列表
docker psDocker 容器列表
docker imagesDocker 镜像列表
scripts/ops/*.shops 目录下的预定义运维脚本

辅助工具

脚本功能
show-defaults.sh查看当前配置
get-password.sh获取实例密码
update-instance-ip.sh更新实例 IP
manage-passwords.sh管理密码存储

配置

环境变量

变量说明默认值
TENCENTCLOUD_SECRET_IDAPI 密钥 ID必需
TENCENTCLOUD_SECRET_KEYAPI 密钥 Key必需
TENCENT_CVM_DEFAULT_REGION默认地域ap-guangzhou
TENCENT_CVM_DEFAULT_ZONE默认可用区-
TENCENT_CVM_DEFAULT_INSTANCE_TYPE默认机型-
TENCENT_CVM_DEFAULT_IMAGE_ID默认镜像-
TENCENT_CVM_DEFAULT_VPC_ID默认 VPC-
TENCENT_CVM_DEFAULT_SUBNET_ID默认子网-
TENCENT_CVM_DEFAULT_SG_ID默认安全组-
TENCENT_CVM_DEFAULT_DISK_SIZE系统盘大小20
TENCENT_CVM_DEFAULT_CHARGE_TYPE计费类型POSTPAID_BY_HOUR

支持的地域

ap-beijing | ap-shanghai | ap-guangzhou | ap-chengdu | ap-nanjing | ap-hongkong

支持的镜像平台

TencentOS | CentOS | Ubuntu | Debian

SSH 登录用户名

系统默认用户名示例
Ubuntuubuntussh ubuntu@<ip>
其他 Linux (TencentOS, CentOS, Debian)rootssh root@<ip>

密码存储

创建实例时自动生成密码并保存到 ~/.tencent_cvm_passwords(权限 600):

{
  "ins-xxx": {
    "password": "aB3#xK9$mN2@pQ",
    "host": "1.2.3.4",
    "region": "ap-guangzhou",
    "created_at": "2026-02-06 15:30:00"
  }
}

管理命令:

./scripts/utils/manage-passwords.sh --list              # 列出所有
./scripts/utils/manage-passwords.sh --show ins-xxx      # 查看详情
./scripts/utils/manage-passwords.sh --delete ins-xxx    # 删除记录

安全说明

本工具集设计用于可信环境下的服务器运维,遵循以下安全原则:

  1. 预定义脚本:仅执行 scripts/ 目录下已审核的预定义脚本,禁止动态生成或执行任意代码
  2. 人工确认:所有写操作(停止、重启、销毁、文件传输等)必须经人工确认后执行
  3. 凭证安全:密码文件 ~/.tencent_cvm_passwords 权限为 600,仅限本地用户访问
  4. 操作审计:所有操作均有日志输出,便于追溯
  5. 使用场景:适用于开发测试环境,生产环境建议配合堡垒机使用

参考