|
发表于 2025-2-13 19:34:38
|
显示全部楼层
本帖最后由 reishi 于 2025-2-13 19:38 编辑
附一个可以查看CPU信息、磁盘空间、内存情况的PHP探针,需要一些函数的支持,例如base_dir 、exec 等。
给个例子:
- <?php
- // 设置页面编码
- header("Content-Type: text/html; charset=utf-8");
- // 获取服务器信息
- $serverType = php_uname('s'); // 服务器类型
- $hostName = php_uname('n'); // 主机名称
- $ipAddress = $_SERVER['SERVER_ADDR']; // IP地址
- $port = $_SERVER['SERVER_PORT']; // 当前端口
- $uptime = @exec('uptime'); // 服务器运行时间
- $load = @exec('uptime | awk -F\'load average:\' \'{print $2}\''); // 系统负载
- $diskTotal = round(disk_total_space("/") / (1024 * 1024 * 1024), 2); // 硬盘总空间 (GB)
- $diskFree = round(disk_free_space("/") / (1024 * 1024 * 1024), 2); // 剩余空间 (GB)
- $diskUsed = $diskTotal - $diskFree; // 已使用空间 (GB)
- // 获取内存和 Swap 信息
- $memoryInfo = @file_get_contents("/proc/meminfo"); // 内存信息
- $memoryTotal = round(preg_match("/MemTotal:\s+(\d+)/", $memoryInfo, $matches) ? $matches[1] / 1024 / 1024 : 0, 2); // 总内存 (GB)
- $memoryFree = round(preg_match("/MemFree:\s+(\d+)/", $memoryInfo, $matches) ? $matches[1] / 1024 / 1024 : 0, 2); // 剩余内存 (GB)
- $memoryUsed = $memoryTotal - $memoryFree; // 已用内存 (GB)
- // 获取 Swap 信息
- $swapTotal = round(preg_match("/SwapTotal:\s+(\d+)/", $memoryInfo, $matches) ? $matches[1] / 1024 / 1024 : 0, 2); // Swap总空间 (GB)
- $swapFree = round(preg_match("/SwapFree:\s+(\d+)/", $memoryInfo, $matches) ? $matches[1] / 1024 / 1024 : 0, 2); // Swap剩余空间 (GB)
- $swapUsed = $swapTotal - $swapFree; // Swap已使用空间 (GB)
- // 如果 Swap 总空间为 0,说明系统未启用 Swap
- if ($swapTotal == 0) {
- $swapTotal = "未启用";
- $swapUsed = "未启用";
- $swapFree = "未启用";
- }
- // 获取 CPU 信息
- $cpuInfo = @file_get_contents("/proc/cpuinfo"); // CPU信息
- // 获取 CPU 型号
- $cpuModel = preg_match("/model name\s+:\s+(.+)/", $cpuInfo, $matches) ? $matches[1] : "未知";
- // 获取逻辑处理器数(线程数)
- $logicalCores = preg_match_all("/processor\s+:\s+\d+/", $cpuInfo, $matches);
- // 获取物理核心数
- $physicalCores = preg_match("/cpu cores\s+:\s+(\d+)/", $cpuInfo, $matches) ? $matches[1] : "未知";
- // 获取网络信息
- $networkRx = @exec('cat /proc/net/dev | grep eth0 | awk \'{print $2}\''); // 网络接收数据 (bytes)
- $networkTx = @exec('cat /proc/net/dev | grep eth0 | awk \'{print $10}\''); // 网络发送数据 (bytes)
- // 获取 PHP 信息
- $phpVersion = phpversion(); // PHP版本
- $webServer = $_SERVER['SERVER_SOFTWARE']; // Web服务器和版本
- $phpFunctions = get_loaded_extensions(); // PHP函数
- ?>
- <!--nobanner-->
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>服务器探针</title>
- <!-- Bootstrap CSS -->
- <link href="https://cdn.staticfile.net/bootstrap/5.3.0-alpha1/css/bootstrap.min.css" rel="stylesheet">
- <style>
- body {
- background-color: #f8f9fa;
- padding: 20px;
- }
- .card {
- margin-bottom: 20px;
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
- }
- .card-header {
- background-color: #007bff;
- color: white;
- font-weight: bold;
- }
- .list-group-item {
- display: flex;
- justify-content: space-between;
- align-items: center;
- }
- .list-group-item span {
- font-weight: bold;
- }
- </style>
- </head>
- <body>
- <div class="container">
- <h1 class="text-center mb-4">服务器探针</h1>
- <!-- 服务器基本信息 -->
- <div class="card">
- <div class="card-header">服务器基本信息</div>
- <ul class="list-group list-group-flush">
- <li class="list-group-item">
- <span>服务器类型</span>
- <?php echo $serverType; ?>
- </li>
- <li class="list-group-item">
- <span>主机名称</span>
- <?php echo $hostName; ?>
- </li>
- <li class="list-group-item">
- <span>IP地址</span>
- <?php echo $ipAddress; ?>
- </li>
- <li class="list-group-item">
- <span>当前端口</span>
- <?php echo $port; ?>
- </li>
- <li class="list-group-item">
- <span>服务器运行时间</span>
- <?php echo $uptime; ?>
- </li>
- <li class="list-group-item">
- <span>系统负载</span>
- <?php echo $load; ?>
- </li>
- </ul>
- </div>
- <!-- CPU信息 -->
- <div class="card">
- <div class="card-header">CPU信息</div>
- <ul class="list-group list-group-flush">
- <li class="list-group-item">
- <span>CPU型号</span>
- <?php echo $cpuModel; ?>
- </li>
- <li class="list-group-item">
- <span>物理核心数</span>
- <?php echo $physicalCores; ?>
- </li>
- <li class="list-group-item">
- <span>逻辑处理器数(线程数)</span>
- <?php echo $logicalCores; ?>
- </li>
- </ul>
- </div>
- <!-- 硬盘信息 -->
- <div class="card">
- <div class="card-header">硬盘信息</div>
- <ul class="list-group list-group-flush">
- <li class="list-group-item">
- <span>硬盘总空间</span>
- <?php echo $diskTotal; ?> GB
- </li>
- <li class="list-group-item">
- <span>已使用空间</span>
- <?php echo $diskUsed; ?> GB
- </li>
- <li class="list-group-item">
- <span>剩余空间</span>
- <?php echo $diskFree; ?> GB
- </li>
- </ul>
- </div>
- <!-- 内存信息 -->
- <div class="card">
- <div class="card-header">内存信息</div>
- <ul class="list-group list-group-flush">
- <li class="list-group-item">
- <span>总内存</span>
- <?php echo $memoryTotal; ?> GB
- </li>
- <li class="list-group-item">
- <span>已用内存</span>
- <?php echo $memoryUsed; ?> GB
- </li>
- <li class="list-group-item">
- <span>剩余内存</span>
- <?php echo $memoryFree; ?> GB
- </li>
- <li class="list-group-item">
- <span>Swap总空间</span>
- <?php echo $swapTotal; ?>
- </li>
- <li class="list-group-item">
- <span>Swap已使用空间</span>
- <?php echo $swapUsed; ?>
- </li>
- <li class="list-group-item">
- <span>Swap剩余空间</span>
- <?php echo $swapFree; ?>
- </li>
- </ul>
- </div>
- <!-- 网络信息 -->
- <div class="card">
- <div class="card-header">网络信息</div>
- <ul class="list-group list-group-flush">
- <li class="list-group-item">
- <span>网络接收数据</span>
- <?php echo $networkRx; ?> bytes
- </li>
- <li class="list-group-item">
- <span>网络发送数据</span>
- <?php echo $networkTx; ?> bytes
- </li>
- </ul>
- </div>
- <!-- PHP信息 -->
- <div class="card">
- <div class="card-header">PHP信息</div>
- <ul class="list-group list-group-flush">
- <li class="list-group-item">
- <span>PHP版本</span>
- <?php echo $phpVersion; ?>
- </li>
- <li class="list-group-item">
- <span>Web服务器</span>
- <?php echo $webServer; ?>
- </li>
- <li class="list-group-item">
- <span>PHP函数</span>
- <?php echo implode(", ", $phpFunctions); ?>
- </li>
- </ul>
- </div>
- </div>
- <!-- Bootstrap JS -->
- <script src="https://cdn.staticfile.net/bootstrap/5.3.0-alpha1/js/bootstrap.bundle.min.js"></script>
- </body>
- </html>
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|