Systemator

用于本地和远程 macOS 及 Ubuntu 服务器的系统信息和监控

概述

Systemator 由三个独立组件组成

独立运行整个监控应用程序!

brew tap einstore/homebrew-tap
brew install systemator
systemator

要定义自定义端口或主机,请执行以下操作:

systemator --hostname 0.0.0.0 --port 12345

或者...

将端点集成到 Vapor 4 应用程序中

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 将为您提供两个端点

输出应该看起来像这样

{
    "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,它是一个真正的服务器!!!

Swift 级别 API

通过 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