用于本地和远程 macOS 及 Ubuntu 服务器的系统信息和监控
Systemator 由三个独立组件组成
NIO
应用程序中,名为 SystemManager
SystemController
,它构建在 Vapor 框架之上,并为您提供两个即用型端点Systemator
,它将启动一个完整的 Vapor 应用程序,并使其 API 可用brew tap einstore/homebrew-tap
brew install systemator
systemator
要定义自定义端口或主机,请执行以下操作:
systemator --hostname 0.0.0.0 --port 12345
或者...
Systemator
并运行!http://127.0.0.1:8080/info
将 SystemController.Controller
集成到您的路由方法中
import Vapor
import SystemController
/// Register your application's routes here.
public func routes(_ r: Routes, _ c: Container) throws {
try Controller().routes(r, c)
}
SystemController
将为您提供两个端点
[GET] /info
- 用于本地系统监控[POST] /info
- 用于远程系统监控输出应该看起来像这样
{
"cpu": {
"clock": 2900000000,
"cores": 4,
"logicalCpu": 8
},
"usage": {
"hdd": [
{
"size": 1000240963584,
"use": 3,
"filesystem": "/dev/disk1s1",
"mounted": "/",
"available": 442482974720,
"used": 10488909824
},
...
{
"size": 1000240963584,
"use": 55,
"filesystem": "/dev/disk1s5",
"mounted": "/System/Volumes/Data",
"available": 442482974720,
"used": 540546445312
}
],
"memory": {
"total": 67108864,
"free": 103,
"used": 67108761
},
"cpu": {
"system": 19.670000000000002,
"user": 22.420000000000002,
"idle": 57.890000000000001
},
"processes": []
}
}
所有数据应以单位、字节或百分比表示(如果适用)
对于远程连接,您需要在请求正文中 POST
连接详细信息,并确保 Content-Type
设置为 application/json
{
"host": "172.16.217.131",
"port": 22,
"login": "pro",
"password": "aaaaaa"
}
请不要连接到该 IP,它是一个真正的服务器!!!
通过 SystemManager
库,您可以从任何支持 Apple NIO
版本 2 的 Swift 服务器端应用程序访问监控
基本用法是
let eventLoop = EmbeddedEventLoop()
let manager = try SystemManager(
.ssh(
host: "ippppp",
port: 22,
username: "root",
password: "sup3rS3cr3t"
),
on: eventLoop
)
let output = try manager.info().wait()
Ondrej Rafaj - @rafiki270 你是不是想连接到我的服务器?!?! :D
MIT; Copyright 2019 - Einstore