跳转到内容

自定义命令

自定义命令可为每台服务器添加专属检查。App 刷新该服务器状态时,也会收集这些命令的输出, 并显示在服务器详情页。

命令文件保存在各自服务器的 ~/.config/server_box/custom_cmds 目录中。App 不会在本机另存 一份:编辑器从服务器读取文件,保存时再写回服务器。

因此需要注意:

  • 编辑时需要连接服务器。 服务器不可达时,可以打开编辑器,但无法保存修改。
  • App 和 Monitor agent 使用同一组文件。 在 Monitor 网页面板或 App 中所做的修改会直接作用于同一目录,无需同步。
  1. 打开服务器编辑页,选择 自定义命令 → 编辑。
  2. 添加命令、修改名称或 Shell 内容,也可以拖动条目调整顺序。
  3. 保存到服务器。

每条命令包含显示名称和 Shell 命令。显示名称会用作服务器详情页中该命令输出的标签。

保存后的命令顺序也会用于服务器详情页。可在编辑器中拖动条目来调整显示顺序。

名为 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 或其他凭据。

早期版本将自定义命令保存在服务器设置的 JSON 对象中。修改其他设置时,App 会保留这些条目,并在首次连接服务器时将命令移入服务器目录。当前版本只向该目录写入命令。