You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux虚拟主机获取专属账户的负载信息?

获取cPanel虚拟主机中单个账户的CPU负载

可行方案

1. 调用cPanel UAPI接口获取官方统计

cPanel提供了用户级API(UAPI)可以直接拉取当前账户的资源使用数据,其中包含CPU使用率、内存占用等信息。你可以通过PHP的curl实现调用:

// 替换为你的cPanel账户信息
$cpanel_user = 'your_username';
$cpanel_token = 'your_api_token';
$cpanel_host = 'your_cpanel_hostname';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://{$cpanel_host}:2083/execute/ResourceUsage/get_usages");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "{$cpanel_user}:{$cpanel_token}");
// 生产环境建议开启SSL验证,调试时可暂时关闭
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);
curl_close($ch);

$resource_data = json_decode($response, true);
if ($resource_data['status'] === 1) {
    $cpu_percent = $resource_data['data']['cpu']['percent'];
    echo "当前账户CPU使用率:{$cpu_percent}%";
} else {
    echo "获取失败:" . ($resource_data['errors'][0] ?? '未知错误');
}

注意:需要先在cPanel面板中生成API令牌,且主机提供商需开放UAPI的访问权限。

2. 统计当前账户进程的CPU占用总和

如果无法使用API,可以通过系统命令枚举当前账户的所有进程,计算总CPU使用率:

// 获取当前运行账户的进程CPU数据
$ps_output = shell_exec('ps -u ' . get_current_user() . ' -o %cpu --no-headers');
$cpu_values = array_filter(array_map('trim', explode("\n", $ps_output)), 'is_numeric');

$total_cpu = array_sum($cpu_values);
echo "当前账户总CPU使用率:{$total_cpu}%";

注意:部分虚拟主机会禁用exec/shell_exec等函数,需要先确认主机是否允许此类调用。这种方式是实时计算进程占用,和cPanel显示的时间段统计平均值可能存在差异。

关于phpsysinfo的说明

phpsysinfo展示的是服务器整体的CPU核心负载,虚拟主机的账户是共享CPU资源的,并非固定绑定某个核心,因此核心负载无法直接对应到单个账户的使用情况。

内容的提问来源于stack exchange,提问作者Robert Baumann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 13:18:02