php写一个硬件信息监控的类

PHP 脚本来实时监控服务器硬件信息和状态。以下是一个简单的代码示例,你可以根据自己的需要进行修改和扩展:

class ServerMonitor {
    private $hostname;
    private $username;
    private $password;
    private $database;
    private $conn;

    function __construct($hostname, $username, $password, $database) {
        $this->hostname = $hostname;
        $this->username = $username;
        $this->password = $password;
        $this->database = $database;

        $this->conn = mysqli_connect($this->hostname, $this->username, $this->password, $this->database);
        if (!$this->conn) {
            die("Connection failed: " . mysqli_connect_error());
        }
    }

    function getCPUUsage() {
        $cpu_usage = sys_getloadavg();
        return $cpu_usage[0];
    }

    function getMemoryUsage() {
        $mem_usage = memory_get_usage();
        return $mem_usage;
    }

    function getDiskUsage() {
        $disk_free_space = disk_free_space("/");
        $disk_total_space = disk_total_space("/");
        $disk_usage = round(($disk_total_space - $disk_free_space) / $disk_total_space * 100, 2);
        return $disk_usage;
    }

    function getServerStatus() {
        $cpu_usage = $this->getCPUUsage();
        $mem_usage = $this->getMemoryUsage();
        $disk_usage = $this->getDiskUsage();

        $sql = "INSERT INTO server_status (cpu_usage, mem_usage, disk_usage) VALUES ('$cpu_usage', '$mem_usage', '$disk_usage')";
        if (mysqli_query($this->conn, $sql)) {
            echo "Server status updated successfully";
        } else {
            echo "Error updating server status: " . mysqli_error($this->conn);
        }
    }
}

// Usage example
$monitor = new ServerMonitor("localhost", "username", "password", "database");
$monitor->getServerStatus();

这个脚本使用了 sys_getloadavg() 函数获取 CPU 使用率,memory_get_usage() 函数获取内存使用情况,以及 disk_free_space()disk_total_space() 函数获取磁盘使用情况。它还使用了 MySQL 数据库来存储服务器状态信息,你需要根据自己的需要修改数据库连接信息和表结构。

你可以使用一个定时任务来定期运行这个脚本,以实现实时监控服务器硬件信息和状态。

如果你想将服务器硬件信息和状态实时展示在前端页面上,可以考虑使用 WebSocket 技术。你可以编写一个 WebSocket 服务器端程序,然后在前端页面上使用 JavaScript 连接 WebSocket 服务器,接收服务器发送的硬件信息和状态,并将其展示在页面上。

至于接口的问题,如果你想提供接口给前端,可以考虑编写一个 RESTful API 接口,前端通过发送 HTTP 请求来获取服务器的硬件信息和状态。接口可以使用 PHP 或其他语言编写,返回 JSON 格式的数据给前端。但是需要注意的是,这种方式只能提供静态的数据,无法实时更新。如果需要实时更新,建议使用 WebSocket 技术。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHUIPING_YANG

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值