自定义命令
自定义命令可为每台服务器添加专属检查。App 刷新该服务器状态时,也会收集这些命令的输出, 并显示在服务器详情页。
命令文件保存在各自服务器的 ~/.config/server_box/custom_cmds 目录中。App 不会在本机另存
一份:编辑器从服务器读取文件,保存时再写回服务器。
因此需要注意:
- 编辑时需要连接服务器。 服务器不可达时,可以打开编辑器,但无法保存修改。
- App 和 Monitor agent 使用同一组文件。 在 Monitor 网页面板或 App 中所做的修改会直接作用于同一目录,无需同步。
- 打开服务器编辑页,选择 自定义命令 → 编辑。
- 添加命令、修改名称或 Shell 内容,也可以拖动条目调整顺序。
- 保存到服务器。
每条命令包含显示名称和 Shell 命令。显示名称会用作服务器详情页中该命令输出的标签。
保存后的命令顺序也会用于服务器详情页。可在编辑器中拖动条目来调整显示顺序。
server_card_top_right
Section titled “server_card_top_right”名为 server_card_top_right 的命令有特殊用途:输出显示在首页服务器卡片右上角,不会出现在常规自定义命令列表中。
使用绝对路径:
/usr/local/bin/my-script.sh支持 Shell 管道:
ps aux | sort -rk 3 | head -5格式化输出:
uptime | awk -F'load average:' '{print $2}'**尽量缩短执行时间:**建议控制在一秒内,因为每次刷新状态都会执行命令。
限制输出量:
tail -20 /var/log/syslog命令使用连接账户的身份运行:SSH 连接使用 SSH 用户;Monitor 连接使用 Monitor agent 进程所属用户。
通过 Monitor 连接编辑命令需要 full_access。agent 还必须启用 terminal access,且请求使用安全传输,或明确允许 allow_insecure。该目录中的每个文件都是可执行代码,会在每次状态刷新时以 agent 用户身份运行。
尽量只使用只读命令。命令可以使用其运行账户的权限修改服务器。不要在命令中写入密码、token 或其他凭据。
从旧格式迁移
Section titled “从旧格式迁移”早期版本将自定义命令保存在服务器设置的 JSON 对象中。修改其他设置时,App 会保留这些条目,并在首次连接服务器时将命令移入服务器目录。当前版本只向该目录写入命令。