本文整理汇总了PHP中Server::server_connect方法的典型用法代码示例。如果您正苦于以下问题:PHP Server::server_connect方法的具体用法?PHP Server::server_connect怎么用?PHP Server::server_connect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Server
的用法示例。
在下文中一共展示了Server::server_connect方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: while
$sVPS->InsertIntoDatabase();
$sTotalMacs = 1;
$sMac = $sVPS->sMac;
while ($sTotalMacs < $sIPTotal) {
$sMac .= "," . generate_mac();
$sTotalMacs++;
}
if ($sMac != $sVPS->sMac) {
$sVPS->uMac = $sMac;
$sVPS->InsertIntoDatabase();
}
echo "Generating new configs for VPS...\n";
$sCreateConfig = $sServerType->kvm_config($sUser, $sVPS, $sRequested);
$sCreateDHCP = $sServerType->kvm_dhcp($sUser, $sVPS, $sRequested);
echo "Shutting down VPS under SolusVM's control, renaming LV...\n";
$sServerConnect = $sServer->server_connect($sServer);
$sShutdown = $sServerConnect->exec("virsh destroy kvm{$sKVMData["xid"]};lvrename {$sServer->sVolumeGroup} kvm{$sKVMData["xid"]}_img kvm{$sVPS->sContainerId}_img;");
echo "Starting up VPS under Feathur's control.\n";
$sBoot = $sServerType->kvm_boot($sUser, $sVPS, $sRequested);
echo $sBoot['result'] . "\n";
} else {
echo "Could not find VPS data in database for VPS ID: {$sValue["vserverid"]} ({$sValue["hostname"]} / {$sValue["mainipaddress"]}), skipping...\n";
}
} else {
echo "Could not find SolusVM client for VPS ID: {$sValue["vserverid"]} ({$sValue["hostname"]} / {$sValue["mainipaddress"]}), skipping...\n";
}
}
if ($sSolusNode["type"] == 'openvz') {
echo "Starting conversion of VPS ID: {$sValue["vserverid"]} ({$sValue["hostname"]} / {$sValue["mainipaddress"]})\n";
if ($sSolusUser = $database->CachedQuery("SELECT * FROM `solusvm`.`clients` WHERE `clientid` = :ClientId", array("ClientId" => $sValue["clientid"]))) {
$sSolusUser = $sSolusUser->data[0];
示例2: pull_status
public static function pull_status($sServer)
{
echo "Setting up prerequisites...\n";
$sTimestamp = time();
global $database;
// Insert History
$sHistory = new History(0);
$sHistory->uServerId = $sServer;
$sHistory->uTimestamp = $sTimestamp;
$sHistory->uStatus = false;
$sHistory->InsertIntoDatabase();
// Insert Statistics
$sStatistics = new Statistics(0);
$sStatistics->uServerId = $sServer;
$sStatistics->uStatus = false;
$sStatistics->uTimestamp = $sTimestamp;
$sStatistics->InsertIntoDatabase();
// Connect to Server
$sServer = new Server($sServer);
$sSSH = Server::server_connect($sServer, "1");
if (is_array($sSSH)) {
die;
}
// Setup and start anti-abuse script on node.
if ($sServer->sType == 'openvz') {
$sAbuse = escapeshellarg(file_get_contents('/var/feathur/Scripts/abuse.sh'));
$sDumpCode = $sSSH->exec("mkdir -p /var/feathur/data;cd /var/feathur/data/;echo {$sAbuse} > abuse.sh;screen -dmS abuse bash -c \"cd /var/feathur/data/;bash abuse.sh;\";");
// Pull list of suspended users:
$sSuspended = explode("\n", $sSSH->exec("cat /var/feathur/data/suspended.txt"));
foreach ($sSuspended as $sValue) {
$sValue = preg_replace('/[^0-9]/', '', $sValue);
if (!empty($sValue) && $sValue >> 10) {
try {
$sVPS = new VPS($sValue);
$sVPS->uSuspended = 2;
$sVPS->InsertIntoDatabase();
} catch (Exception $e) {
echo "Odd data in suspend tracker. Skipping";
}
}
}
$sClean = $sSSH->exec("rm -rf /var/feathur/data/suspended.txt");
}
// Pull system stats.
echo "Connected to server...\n";
$sUptime = explode(' ', $sSSH->exec("cat /proc/uptime"));
$sCPU = explode(' ', $sSSH->exec("cat /proc/loadavg"));
$sUsedRAM = preg_replace('/[^0-9]/', '', $sSSH->exec("free | head -n 3 | tail -n 1 | awk '{print \$3}'"));
$sTotalRAM = preg_replace('/[^0-9]/', '', $sSSH->exec("free | head -n 2 | tail -n 1 | awk '{print \$2}'"));
$sDisk = $sSSH->exec("df");
$sDisk = explode("\n", trim($sDisk));
array_shift($sDisk);
foreach ($sDisk as $sValue) {
$sValue = explode(" ", preg_replace("/\\s+/", " ", $sValue));
if (is_numeric($sValue[2])) {
$sDiskUsed = $sDiskUsed + $sValue[2];
$sDiskTotal = $sDiskTotal + $sValue[1];
}
}
$sDiskUsed = $sDiskUsed / 1048576;
$sDiskTotal = $sDiskTotal / 1048576;
$sPullBandwidth = explode("\n", $sSSH->exec("ifconfig {$interface} | grep 'RX bytes' | awk -F: '{print \$2,\$3}' | awk '{print \$1,\$6}'"));
foreach ($sPullBandwidth as $sData) {
if (empty($sNewBandwidth)) {
$sData = explode(" ", $sData);
$sData[0] = preg_replace('/[^0-9]/', '', $sData[0]);
$sData[1] = preg_replace('/[^0-9]/', '', $sData[1]);
$sNewBandwidth = round($sData[0] / 131072 + $sData[1] / 131072, 2);
}
}
// Update server row.
// Check to make sure that the current bandwidth is higher than last bandwidth.
// If higher, update statuses, otherwise replace both values with current value.
// This prevents bandwidth accounting from becoming negative.
$sBandwidthNegative = $sServer->sBandwidth;
if ($sNewBandwidth > $sBandwidthNegative) {
$sServer->uPreviousCheck = $sServer->sLastCheck;
$sServer->uLastCheck = $sTimestamp;
$sServer->uLastBandwidth = $sServer->sBandwidth;
$sServer->uBandwidth = $sNewBandwidth;
} else {
$sServer->uPreviousCheck = $sTimestamp;
$sServer->uLastCheck = $sTimestamp;
$sServer->uLastBandwidth = $sNewBandwidth;
$sServer->uBandwidth = $sNewBandwidth;
}
$sServer->uLoadAverage = $sCPU[0];
$sServer->uHardDiskTotal = $sDiskTotal;
$sServer->uHardDiskFree = $sDiskTotal - $sDiskUsed;
$sServer->uTotalMemory = $sTotalRAM;
$sServer->uFreeMemory = $sTotalRAM - $sUsedRAM;
$sServer->uStatus = true;
$sServer->uStatusWarning = false;
$sServer->uHardwareUptime = $sUptime[0];
$sServer->InsertIntoDatabase();
// Update history
$sHistory->uStatus = true;
$sHistory->InsertIntoDatabase();
// Update statistics
$sStatistics->uStatus = true;
//.........这里部分代码省略.........
示例3: database_kvm_terminate
public function database_kvm_terminate($sUser, $sVPS, $sRequested)
{
global $database;
$sUserPermissions = $sUser->sPermissions;
if ($sUserPermissions == 7) {
$sServer = new Server($sVPS->sServerId);
$sSSH = Server::server_connect($sServer);
$sCommandList .= "virsh autostart --disabled kvm{$sVPS->sContainerId}}";
$sCommandList .= "virsh destroy kvm{$sVPS->sContainerId};";
$sCommandList .= "rm -rf /var/feathur/configs/kvm{$sVPS->sContainerId}-vps.xml;rm -rf /var/feathur/configs/kvm{$sVPS->sContainerId}-dhcp.conf;";
$sCommandList .= "cat /var/feathur/configs/dhcpd.head /var/feathur/configs/*-dhcp.conf > /etc/dhcp/dhcpd.conf;service isc-dhcp-server restart;";
$sCommandList .= "dd if=/dev/zero of=/dev/{$sServer->sVolumeGroup}/kvm{$sVPS->sContainerId}_img;";
$sCommandList .= "lvremove -f /dev/{$sServer->sVolumeGroup}/kvm{$sVPS->sContainerId}_img;exit;";
$sCommandList = escapeshellarg($sCommandList);
$sLog[] = array("command" => "VPS Termination via Screen", "result" => $sSSH->exec("screen -dm -S {$sVPS->sContainerId} bash -c {$sCommandList};"));
$sSave = VPS::save_vps_logs($sLog, $sVPS);
$sTerminate = $database->CachedQuery("DELETE FROM vps WHERE `id` = :VPSId", array('VPSId' => $sVPS->sId));
$sCleanIPs = $database->CachedQuery("UPDATE ipaddresses SET `vps_id` = 0 WHERE `vps_id` = :VPSId", array('VPSId' => $sVPS->sId));
return $sArray = array("json" => 1, "type" => "error", "result" => "This VPS has been terminated.", "reload" => 1);
} else {
return $sArray = array("json" => 1, "type" => "error", "result" => "Insufficient permissions for this action.", "reload" => 1);
}
}
示例4: openvz_statistics
public function openvz_statistics($sUser, $sVPS, $sRequested)
{
global $sTemplate;
global $database;
global $locale;
$sServer = new Server($sVPS->sServerId);
$sSSH = Server::server_connect($sServer);
$sLog[] = array("command" => "vzctl status {$sVPS->sContainerId}", "result" => $sSSH->exec("vzctl status {$sVPS->sContainerId}"));
if (strpos($sLog[0]["result"], 'running') === false) {
return $sArray = array("json" => 1, "type" => "status", "result" => "offline", "hostname" => $sVPS->sHostname);
} else {
$sUptime = explode(' ', $sSSH->exec("vzctl exec {$sVPS->sContainerId} cat /proc/uptime"));
$sRAM = explode('kB', $sSSH->exec("vzctl exec {$sVPS->sContainerId} cat /proc/meminfo"));
$sUsedRAM = preg_replace("/[^0-9]/", "", $sRAM[0]) - preg_replace("/[^0-9]/", "", $sRAM[1]);
$sTotalRAM = preg_replace("/[^0-9]/", "", $sRAM[0]);
$sUsedSWAP = preg_replace("/[^0-9]/", "", $sRAM[11]) - preg_replace("/[^0-9]/", "", $sRAM[12]);
if ($sUsedSWAP < 0) {
$sUsedSWAP = preg_replace("/[^0-9]/", "", $sRAM[12]) - preg_replace("/[^0-9]/", "", $sRAM[13]);
}
$sTotalSWAP = $sVPS->sSWAP;
$sDisk = $sSSH->exec("vzctl exec {$sVPS->sContainerId} df");
$sDisk = explode("\n", trim($sDisk));
array_shift($sDisk);
foreach ($sDisk as $sValue) {
$sValue = explode(" ", preg_replace("/\\s+/", " ", $sValue));
if (is_numeric($sValue[2])) {
$sDiskUsed = $sDiskUsed + $sValue[2];
}
}
$sDiskUsed = $sDiskUsed / 1048576;
$sDiskTotal = $sVPS->sDisk;
$sCPU = explode(' ', $sSSH->exec("vzctl exec {$sVPS->sContainerId} cat /proc/loadavg"));
if ($sUsedRAM > 0) {
$sUsedRAM = round($sUsedRAM / 1024, 0);
}
if ($sTotalRAM > 0) {
$sTotalRAM = round($sTotalRAM / 1024, 0);
}
if ($sUsedRAM > 0 && $sTotalRAM > 0) {
$sPercentRAM = round(100 / $sTotalRAM * $sUsedRAM, 0);
} else {
$sPercentRAM = 0;
}
if ($sUsedSWAP > 0) {
$sUsedSWAP = round($sUsedSWAP / 1024, 0);
}
if ($sUsedSWAP > 0 && $sTotalSWAP > 0) {
$sPercentSWAP = round(100 / $sTotalSWAP * $sUsedSWAP, 0);
} else {
$sPercentSWAP = 0;
}
if ($sDiskUsed > 0 && $sDiskTotal > 0) {
$sPercentDisk = round(100 / $sDiskTotal * $sDiskUsed, 0);
} else {
$sPercentDisk = 0;
}
if ($sCPU[0] > 0 && $sVPS->sCPULimit > 0) {
$sPercentCPU = round(100 / $sVPS->sCPULimit * ($sCPU[0] * 100), 0);
} else {
$sPercentCPU = 0;
}
if ($sVPS->sCPULimit > 0) {
$sCores = round($sVPS->sCPULimit / 100, 0);
} else {
$sCores = 0;
}
if ($sDiskUsed < 1) {
$sDiskUsed = round($sDiskUsed, 2);
} else {
$sDiskUsed = round($sDiskUsed, 0);
}
if ($sTemplates = $database->CachedQuery("SELECT * FROM templates WHERE `id` = :TemplateId", array('TemplateId' => $sVPS->sTemplateId))) {
$sVPSTemplate = new Template($sVPS->sTemplateId);
$sTemplateName = $sVPSTemplate->sName;
} else {
$sTemplateName = "N/A";
}
if ($sVPS->sBandwidthUsage > 0) {
$sBandwidthUsage = FormatBytes($sVPS->sBandwidthUsage, 2);
} else {
$sBandwidthUsage = "0 MB";
}
if (!empty($sVPS->sBandwidthLimit) && !empty($sVPS->sBandwidthUsage)) {
$sPercentBandwidth = round(100 / ($sVPS->sBandwidthLimit * 1024) * $sVPS->sBandwidthUsage, 0);
if (empty($sPercentBandwidth)) {
$sPercentBandwidth = 0;
}
} else {
$sPercentBandwidth = 0;
}
$sStatistics = array("info" => array("uptime" => ConvertTime($sUptime[0]), "used_ram" => $sUsedRAM, "total_ram" => $sTotalRAM, "percent_ram" => $sPercentRAM, "used_swap" => $sUsedSWAP, "total_swap" => $sTotalSWAP, "percent_swap" => $sPercentSWAP, "used_disk" => $sDiskUsed, "total_disk" => round($sDiskTotal, 0), "percent_disk" => $sPercentDisk, "total_cpu" => $sVPS->sCPULimit, "total_cores" => $sCores, "used_cores" => $sCPU[0], "used_cpu" => $sCPU[0] * 100, "percent_cpu" => $sPercentCPU, "load_average" => "{$sCPU['0']} {$sCPU['1']} {$sCPU['2']}", "bandwidth_usage" => $sBandwidthUsage, "bandwidth_limit" => FormatBytes($sVPS->sBandwidthLimit * 1024, 0), "percent_bandwidth" => round(100 / ($sVPS->sBandwidthLimit * 1024) * $sVPS->sBandwidthUsage, 0), "operating_system" => $sTemplateName, "hostname" => $sVPS->sHostname, "primary_ip" => $sVPS->sPrimaryIP));
$sStatistics = Templater::AdvancedParse($sTemplate->sValue . '/' . $sVPS->sType . '.statistics', $locale->strings, array("Statistics" => $sStatistics));
return $sArray = array("json" => 1, "type" => "status", "result" => "online", "content" => $sStatistics, "hostname" => $sVPS->sHostname);
}
}