with one click
btpanel-files
宝塔面板文件管理技能,提供远程服务器文件/目录浏览、读取、编辑、创建、删除、权限管理等基本文件操作能力
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
宝塔面板文件管理技能,提供远程服务器文件/目录浏览、读取、编辑、创建、删除、权限管理等基本文件操作能力
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | btpanel_files |
| description | 宝塔面板文件管理技能,提供远程服务器文件/目录浏览、读取、编辑、创建、删除、权限管理等基本文件操作能力 |
| user-invocable | true |
| disable-model-invocation | false |
| icon | icon/bt.png |
| metadata | {"openclaw":{"requires":{"bins":["python3"]},"keywords":["宝塔面板","BT-Panel","文件管理","文件操作","目录浏览","文件读取","文件编辑","权限管理"]}} |
宝塔面板服务器文件操作工具,提供远程文件/目录浏览、读取、编辑、创建、删除、权限管理等基本文件操作能力。
技能包提供以下图标文件,可在生成报告时引用:
| 文件 | 格式 | 用途 |
|---|---|---|
icon/bt-logo.svg | SVG | 矢量图标,适合缩放 |
本技能用于查询和修改服务器文件,AI 应遵循以下原则:
/etc/shadow、.env、config.php 等含密码的文件)执行流程示例:
AI: 我将为您执行以下操作:
1. 读取配置文件 /www/server/nginx/conf/nginx.conf
2. 修改指定配置项
3. 保存文件
正在获取数据,请稍候...
[执行命令]
[展示结果和修改内容]
当前宝塔面板技能包,共包含 3 个相互关联的技能:
| 技能名称 | 描述 | 依赖关系 |
|---|---|---|
| btpanel | 运维监控技能 | ✅ 基础技能,主要用于资源监控、网站状态检查、服务状态检查等 |
| btpanel-files | 文件管理技能 | ✅ 提供远程服务器文件辅助服务,可以读取文件列表和内容 |
| btpanel-phpsite | PHP 网站管理技能 | ✅ 提供远程服务器 PHP 网站管理功能,能够部署和管理php网站 |
问题 1: 配置文件不存在
错误:未找到配置文件
解决:运行 python3 bt-config.py add 添加服务器配置
问题 2: PYTHONPATH 未设置
# 运行脚本前需要设置
export PYTHONPATH=/path/to/btpanel-skills/src:$PYTHONPATH
# 检查 bt_common 模块
python3 -c "from bt_common.bt_client import BtClient; print('✅ 模块正常')"
# 检查配置文件
ls -la ~/.openclaw/bt-skills.yaml
# 测试连接
python3 {baseDir}/scripts/monitor.py --server "你的服务器名"
重要: 没有服务器信息时需要先添加
本技能复用 btpanel 技能的配置系统,使用 bt-config.py 工具管理服务器:
# 查看帮助
python3 {baseDir}/scripts/bt-config.py -h
# 添加服务器
python3 {baseDir}/scripts/bt-config.py add -n prod-01 -H https://panel.example.com:8888 -t YOUR_TOKEN
# 列出服务器
python3 {baseDir}/scripts/bt-config.py list
# 删除服务器
python3 {baseDir}/scripts/bt-config.py remove prod-01
获取 API Token 的方法:
重要提示 - SSL 证书验证配置: 添加服务器时,AI 应询问用户:
"您的宝塔面板是否使用了受信任的 SSL 证书(如 Let's Encrypt、商业 CA 证书)?"
--verify-ssl false 参数示例:
# 自签名证书场景
python3 {baseDir}/scripts/bt-config.py add -n prod-01 -H https://panel.example.com:8888 -t YOUR_TOKEN --verify-ssl false
# 受信任证书场景(默认)
python3 {baseDir}/scripts/bt-config.py add -n prod-01 -H https://panel.example.com:8888 -t YOUR_TOKEN
当用户需要查看服务器某个目录的内容时:
# 查看/www 目录
python3 {baseDir}/scripts/files.py ls /www
# 查看指定目录
python3 {baseDir}/scripts/files.py ls /www/server/nginx/conf
# 带分页查看
python3 {baseDir}/scripts/files.py ls /www/wwwlogs -p 2 -r 100
用户意图识别:
files.py ls /wwwfiles.py ls /www/server/nginx/conffiles.py ls 路径当用户需要查看文件内容时:
# 读取文件
python3 {baseDir}/scripts/files.py cat /www/test.txt
# 读取文件最后 50 行
python3 {baseDir}/scripts/files.py cat /www/logs/error.log -n 50
# 读取并显示文件信息
python3 {baseDir}/scripts/files.py cat /www/server/nginx/conf/nginx.conf -v
用户意图识别:
files.py cat 路径files.py cat 路径 -n 50files.py cat 路径 -v当用户需要修改文件内容时:
# 直接修改文件内容
python3 {baseDir}/scripts/files.py edit /www/test.txt "新内容"
# 从本地文件读取内容并保存
python3 {baseDir}/scripts/files.py edit /www/test.txt -f ./local-file.txt
用户意图识别:
files.py editfiles.py edit重要:编辑文件前必须先读取原内容,确认修改范围后再保存。
当用户需要创建新目录或文件时:
# 创建目录
python3 {baseDir}/scripts/files.py mkdir /www/newdir
# 创建文件
python3 {baseDir}/scripts/files.py touch /www/test.txt
用户意图识别:
files.py mkdir 路径files.py touch 路径当用户需要删除文件或目录时:
# 删除文件
python3 {baseDir}/scripts/files.py rm /www/test.txt
# 删除目录
python3 {baseDir}/scripts/files.py rmdir /www/olddir
用户意图识别:
files.py rm 路径files.py rmdir 路径重要:删除操作会将文件/目录移动到回收站,非永久删除。但操作前仍需用户确认。
当用户需要管理文件权限时:
# 查看文件权限
python3 {baseDir}/scripts/files.py stat /www/test.txt
# 修改文件权限
python3 {baseDir}/scripts/files.py chmod 755 /www/test.txt
# 修改权限并设置所有者
python3 {baseDir}/scripts/files.py chmod 755 /www/test.txt -u www -g www
# 递归修改目录权限
python3 {baseDir}/scripts/files.py chmod 755 /www/wwwroot -R
用户意图识别:
files.py stat 路径files.py chmod 755 路径files.py chmod# 查看帮助
python3 {baseDir}/scripts/files.py -h
# 列出目录内容
python3 {baseDir}/scripts/files.py ls /www
# 指定页码和每页数量
python3 {baseDir}/scripts/files.py ls /www/wwwlogs -p 2 -r 100
# 指定服务器
python3 {baseDir}/scripts/files.py ls /www --server prod-01
# 读取文件内容
python3 {baseDir}/scripts/files.py cat /www/test.txt
# 读取文件最后 N 行
python3 {baseDir}/scripts/files.py cat /www/logs/error.log -n 100
# 读取并显示详细信息
python3 {baseDir}/scripts/files.py cat /www/test.txt -v
# 直接指定内容
python3 {baseDir}/scripts/files.py edit /www/test.txt "Hello World"
# 从本地文件读取内容
python3 {baseDir}/scripts/files.py edit /www/test.txt -f ./content.txt
# 从标准输入读取
cat ./content.txt | python3 {baseDir}/scripts/files.py edit /www/test.txt
# 创建目录
python3 {baseDir}/scripts/files.py mkdir /www/newdir
# 创建文件
python3 {baseDir}/scripts/files.py touch /www/test.txt
# 删除文件
python3 {baseDir}/scripts/files.py rm /www/test.txt
# 删除目录
python3 {baseDir}/scripts/files.py rmdir /www/olddir
# 查看权限
python3 {baseDir}/scripts/files.py stat /www/test.txt
# 修改权限
python3 {baseDir}/scripts/files.py chmod 755 /www/test.txt
# 修改权限并设置所有者
python3 {baseDir}/scripts/files.py chmod 755 /www/test.txt -u www -g www
# 递归修改目录权限
python3 {baseDir}/scripts/files.py chmod 755 /www/wwwroot -R
| 参数 | 说明 | 默认值 |
|---|---|---|
--server, -s | 指定服务器名称 | 默认服务器 |
| 参数 | 说明 | 默认值 |
|---|---|---|
path | 目录路径 | /www |
--page, -p | 页码 | 1 |
--rows, -r | 每页显示数量 | 500 |
| 参数 | 说明 | 默认值 |
|---|---|---|
path | 文件路径 | 必填 |
--lines, -n | 显示最后 N 行 | 全部 |
--verbose, -v | 显示文件信息 | 否 |
| 参数 | 说明 | 默认值 |
|---|---|---|
path | 文件路径 | 必填 |
content | 文件内容 | 从 stdin 读取 |
--file, -f | 从本地文件读取内容 | 无 |
--encoding, -e | 文件编码 | utf-8 |
| 参数 | 说明 | 默认值 |
|---|---|---|
path | 目录路径 | 必填 |
| 参数 | 说明 | 默认值 |
|---|---|---|
path | 文件路径 | 必填 |
| 参数 | 说明 | 默认值 |
|---|---|---|
path | 文件路径 | 必填 |
| 参数 | 说明 | 默认值 |
|---|---|---|
path | 目录路径 | 必填 |
| 参数 | 说明 | 默认值 |
|---|---|---|
path | 文件路径 | 必填 |
| 参数 | 说明 | 默认值 |
|---|---|---|
access | 权限码(如 755, 644) | 必填 |
path | 文件路径 | 必填 |
--user, -u | 所有者用户名 | 当前用户 |
--group, -g | 用户组名 | 当前组 |
--recursive, -R | 递归设置子目录和文件 | 否 |
tail 命令)st_mtime 参数)路径安全:所有路径参数会自动进行 URL 编码,支持含空格和特殊字符的路径
删除操作:删除文件/目录会移动到回收站,非永久删除。如需永久删除需在宝塔面板中清空回收站
并发保护:保存文件时会自动检查文件是否被其他进程修改,如有冲突会提示
权限要求:需要对目标路径有相应的读写权限,否则操作会失败
敏感文件:部分系统文件可能因权限限制无法读取或修改
文件大小限制:过大的文件可能导致读取/保存超时,建议分批处理
文件下载 API:宝塔面板 /files?action=DownloadFile API 必须传递 filename 参数,否则返回 HTTP 500 错误。脚本已自动从 URL 提取文件名,无需手动指定
{
"dir": [
{"nm": "目录名", "sz": "大小", "mt": "时间戳", "acc": "权限", "user": "所有者"}
],
"files": [
{"nm": "文件名", "sz": "大小", "mt": "时间戳", "acc": "权限", "user": "所有者", "rmk": "备注"}
],
"path": "/www",
"page": "页码信息"
}
{
"status": true,
"only_read": false,
"size": 639,
"encoding": "utf-8",
"data": "文件内容",
"st_mtime": "1753161154"
}
{
"chmod": "755",
"chown": "www:www"
}
技能包复用 btpanel 技能的配置系统,配置文件位置:
~/.openclaw/bt-skills.yamlconfig/servers.local.yamlconfig/servers.yaml配置示例:
servers:
- name: prod-01
host: https://panel.example.com:8888
token: YOUR_API_TOKEN
disabled: false
global:
timeout: 30
thresholds:
cpu: 80
memory: 85
disk: 90
宝塔面板 PHP 网站管理技能,提供站点创建、删除、启停、PHP 版本切换、域名管理、SSL 证书管理、伪静态管理、数据库管理等功能
宝塔面板(BT-Panel)运维监控技能,提供服务器资源监控、网站状态检查、服务状态检查、SSH安全审计、计划任务管理、日志读取等功能
宝塔面板文件管理技能,提供远程服务器文件/目录浏览、读取、编辑、创建、删除、权限管理等基本文件操作能力
宝塔面板 PHP 网站管理技能,提供站点创建、删除、启停、PHP 版本切换、域名管理、SSL 证书管理、伪静态管理、数据库管理等功能
宝塔面板(BT-Panel)运维监控技能,提供服务器资源监控、网站状态检查、服务状态检查、SSH安全审计、计划任务管理、日志读取等功能