fleetdfleetd
指南
设计
  • English
  • 简体中文
GitHub
指南
设计
  • English
  • 简体中文
GitHub
  • 介绍
  • 快速开始
  • 部署服务端
  • 接入机器
  • 命令和终端
  • 客户端更新
  • 告警
  • 配置参考
  • 常见问题

命令和终端

两者都需要:你的浏览器里有签名密钥(「设置 → 签名密钥」),目标机器信任这把密钥,并且机器的权限级别允许。

在三台机器上执行命令

执行命令

  1. 打开「命令」页,或在机器详情页点「执行命令」。
  2. 选一台或多台在线机器,输入命令。命令以 root 身份用 sh -c 执行,管道和 && 都能用。
  3. 点「签名并执行」,看清确认框里的内容。浏览器签名后,每台机器会先核对签名、目标机器、有效期和自己的权限级别,再执行。

各台机器的输出边执行边显示。每个结果会显示退出码,或者没有执行的原因(例如 rejected: commands are disabled on this machine (permission: monitor))。

每台机器上的限制:

限制值
超时默认 60 秒,最长 1 小时
保留的输出1 MB,超出部分截断
同时执行4 条
签名有效期5 分钟,每条命令只能执行一次

长时间运行的任务

客户端和服务端的连接一断,正在执行的命令就会被结束。升级、重启网络这类可能导致断线的操作,请放到后台执行,过后再看结果:

nohup sh -c 'apt-get update && apt-get -y upgrade' > /tmp/upgrade.log 2>&1 &

systemd 系统上也可以用 systemd-run --unit=upgrade …。

网页终端

在机器详情页点「终端」,会打开一个 root 登录 shell(bash -l,没有 bash 时用 sh),是真正的终端设备,vim、top、htop 都能用。窗口可以调整大小,关闭页面就结束会话。每台机器最多同时开 4 个终端。

终端要求机器的权限是 full。

提示

签名的只是"打开终端"这一步,之后的每次按键不再签名。不用的终端请及时关闭。

审计记录

「命令 → 历史记录」列出每条命令和每次终端会话:时间、机器、签名密钥和结果。点结果可以重新查看输出。

每个客户端也会把执行过的命令写进它自己的日志,服务端被攻破后删不掉:

journalctl -u fleetd-agent | grep exec       # systemd
logread -e fleetd                            # OpenWrt
在 GitHub 上编辑此页
最后更新: 2026/11/3 11:50
贡献者: weiyi
Prev
接入机器
Next
客户端更新