Rtty项目远程命令执行API详解
rtty 🐛 Access your terminal from anywhere via the web. 项目地址: https://gitcode.com/gh_mirrors/rt/rtty
什么是Rtty远程命令执行功能
Rtty是一个基于Web的远程终端工具,它提供了远程命令执行API,允许开发者通过HTTP请求向目标设备发送命令并获取执行结果。这项功能特别适合需要远程管理大量设备的场景,比如物联网设备管理、服务器集群运维等。
API基础使用说明
API端点
远程命令执行API的基础路径为:
/cmd/:devid?wait=10
其中:
:devid
是目标设备的唯一标识符wait
是可选参数,表示等待命令执行完成的最长时间(秒),默认为30秒。如果不需要等待执行结果,可设置为0
请求格式
请求体必须为JSON格式,包含以下字段:
{
"username": "test",
"password": "test",
"cmd": "echo",
"params": ["hello rtty"]
}
字段说明:
username
(必需):认证用户名password
(可选):认证密码cmd
(必需):要执行的命令params
(可选):命令参数数组
响应处理
成功响应
当命令执行完成后,服务器会返回JSON格式的结果:
{
"code": 0,
"stdout": "aGVsbG8gcnR0eQo=",
"stderr": ""
}
注意:
stdout
和stderr
是经过Base64编码的code
表示命令的退出状态码,0通常表示成功
错误响应
如果执行过程中出现错误,会返回错误信息:
{
"err": 1002,
"msg": "device offline"
}
错误码详解
系统定义了以下错误码:
- 1001:无效的请求格式
- 1002:设备离线
- 1003:执行超时
- 1:操作不被允许
- 2:未找到
- 3:内存不足
- 4:系统错误
- 5:输出内容过大
实际应用示例
Shell脚本调用
可以通过curl等工具发送请求:
#!/bin/bash
data='{"username":"test","password":"test","cmd":"echo","params":["hello rtty"]}'
response=$(curl -s -X POST -H "Content-Type: application/json" -d "$data" "http://your-server:5913/cmd/test")
echo $response
JavaScript调用(jQuery)
var data = {
username: 'test',
password: 'test',
cmd: 'echo',
params: ['hello rtty']
};
$.post('http://your-server:5913/cmd/test', JSON.stringify(data), function(r) {
if (r.stdout) {
console.log(window.atob(r.stdout));
} else {
console.log(r);
}
});
JavaScript调用(Axios)
var data = {
username: 'test',
password: 'test',
cmd: 'echo',
params: ['hello rtty']
};
axios.post('http://your-server:5913/cmd/test', data)
.then(function(r) {
var resp = r.data;
if (resp.stdout) {
console.log(window.atob(resp.stdout));
} else {
console.log(resp);
}
});
最佳实践建议
- 安全性:确保在生产环境中使用强密码,并考虑使用HTTPS加密通信
- 超时设置:根据命令执行时间合理设置wait参数,避免长时间阻塞
- 错误处理:实现完善的错误处理逻辑,特别是对设备离线等常见情况的处理
- 日志记录:记录所有命令执行请求和响应,便于审计和故障排查
- 输出处理:注意stdout和stderr是Base64编码的,需要解码后才能获取原始内容
通过合理使用Rtty的远程命令执行API,开发者可以构建强大的远程设备管理系统,实现批量操作、自动化运维等功能。
rtty 🐛 Access your terminal from anywhere via the web. 项目地址: https://gitcode.com/gh_mirrors/rt/rtty
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考