编辑 /home/wwwroot/sspanel/config/.routes.php
,找到注释“// Home”,在适当位置添加如下内容
//check status $app->get('/check', 'App\Controllers\HomeController:check');
编辑 /home/wwwroot/sspanel/app/Controllers/HomeController.php
,在适当位置插入如下内容
use App\Models\Node;
同样是该文件,在适当位置插入如下内容
public function check($request,$response, $args) { $id = $request->getParam("id"); $node = Node::where('id',"=",$id)->first(); if ($node=="") { $status="unknown"; } else { if ($node->isNodeOnline() !== null) { if ($node->isNodeOnline() == false) { $status="offline"; } else { $status="online"; } } else { $status="unknown"; } } return $this->view()->assign('status', $status)->display('check.tpl');
最后,在 /home/wwwroot/sspanel/public
下创建文件 check.tpl
,内容如下
{$status}
如何使用
验证效果:在浏览器访问 https://你的域名/check?id=你的一个节点编号
- 返回
offline
表示离线 - 返回
online
表示在线 - 返回
unknown
表示没有这个节点
节点上写一个脚本,就可以配合 crontab
定时任务利用这个 Api 实现节点离线的 自动重启/上报 了
发表回复