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 技术。