Cacti??

WBOY
Freigeben: 2016-06-23 14:22:30
Original
1055 Leute haben es durchsucht

cacti debug xampp

C:\Documents and Settings\issdu>C:/xampp/php/php -q C:/xampp/htdocs/cacti/poller
.php --force --debug
09/25/2013 03:31:52 AM - POLLER: Poller[0] NOTE: Poller Int: '300', Scheduled Ta
sk Int: '300', Time Since Last: '118', Max Runtime '298', Poller Runs: '1'
09/25/2013 03:31:52 AM - POLLER: Poller[0] DEBUG: About to Spawn a Remote Proces
s [CMD: c:/xampp/php/php.exe, ARGS: -q "c:/xampp/htdocs/cacti/cmd.php" 0 1]
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
OK u:0.01 s:0.03 r:8.19rs.
OK u:0.01 s:0.03 r:8.1909/25/2013 03:32:02 AM - SYSTEM STATS: Time:9.8750 Method
OK u:0.01 s:0.03 r:8.23reads:N/A Hosts:2 HostsPerProcess:2 DataSources:29 RRDsPr
OK u:0.01 s:0.03 r:8.23rs.
OK u:0.01 s:0.03 r:8.25rs.
OK u:0.01 s:0.03 r:8.25rs.
OK u:0.01 s:0.03 r:8.25rs.
OK u:0.01 s:0.03 r:8.28rs.
OK u:0.01 s:0.03 r:8.34rs.
OK u:0.01 s:0.03 r:8.34rs.
OK u:0.01 s:0.03 r:8.72rs.
OK u:0.01 s:0.03 r:8.72rs.
OK u:0.01 s:0.03 r:8.72rs.
OK u:0.01 s:0.03 r:8.72rs.
OK u:0.01 s:0.03 r:8.72rs.
OK u:0.01 s:0.03 r:8.73rs.
OK u:0.01 s:0.03 r:8.75rs.
OK u:0.01 s:0.03 r:8.75rs.
Loop  Time is: 10.44llers.
Sleep Time is: 289.36lers.
Total Time is: 10.64llers.
Waiting on 1 of 1 pollers.
C:\Documents and Settings\issdu>
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
OK u:0.01 s:0.03 r:3.36W
aiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
OK u:0.01 s:0.03 r:3.45
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
ERROR: Not enough argumentsW
aiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
OK u:0.01 s:0.03 r:4.42Waiting on 1 of 1 pollers.

Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
Waiting on 1 of 1 pollers.
OK u:0.01 s:0.03 r:4.50
Waiting on 1 of 1 pollers.
OK u:0.01 s:0.03 r:4.51Waiting on 1 of 1 pollers.


??????有解?方法??
Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\cacti\lib\ping.php on line 382

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\cacti\lib\ping.php on line 382

Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\cacti\lib\ping.php on line 382

回复讨论(解决方案)

那要看 C:\xampp\htdocs\cacti\lib\ping.php 第 382 行是怎么写的了

/*此?382行 get the socket response */
switch(socket_select($r = array($this->socket), $w = NULL, $f = NULL, $to_sec, $to_usec)) {
case 2:
/* connection refused */
$error = "refused";
break;
case 1:
/* get the end time */
$this->time = $this->get_time($this->precision);

/* get packet response */
$code = @socket_recv($this->socket, $this->reply, 256, 0);

/* get the error, if applicable */
$err = socket_last_error($this->socket);

/* set the return message */
$this->ping_status = $this->time * 1000;
$this->ping_response = "UDP Ping Success (" . $this->time*1000 . " ms)";

$this->close_socket();
return true;
case 0:
/* timeout */
$error = "timeout";
break;
}

$retry_count++;
}
} else {
$this->ping_response = "Destination address not specified";
$this->ping_status   = "down";

return false;
}
} /* end ping_udp */

function ping_tcp() {
/* Host must be nonblank */
if ($this->host["hostname"]) {
/* initialize variables */
$this->ping_status   = "down";
$this->ping_response = "default";

/* establish timeout variables */
$to_sec  = floor($this->timeout/1000);
$to_usec = ($this->timeout%1000)*1000;

/* clean up hostname if specifying snmp_transport */
$this->host["hostname"] = str_replace("tcp:", "", strtolower($this->host["hostname"]));
$this->host["hostname"] = str_replace("udp:", "", strtolower($this->host["hostname"]));

/* determine the host's ip address */
if ($this->is_ipaddress($this->host["hostname"])) {
$host_ip = $this->host["hostname"];
}else{
$host_ip = gethostbyname($this->host["hostname"]);

if (!$this->is_ipaddress($host_ip)) {
cacti_log("WARNING: TCP Ping Error: gethostbyname failed for " . $this->host["hostname"]);
$this->response = "TCP Ping Error: gethostbyname failed for " . $this->host["hostname"];
return false;
}
}

/* initilize the socket */
if (substr_count($host_ip,":") > 0) {
if (defined("AF_INET6")) {
$this->socket = socket_create(AF_INET6, SOCK_STREAM, SOL_TCP);
}else{
$this->ping_response = "PHP binary does not support IPv6";
$this->ping_status   = "down";
cacti_log("WARNING: IPv6 host detected, PHP version does not support IPv6");

return false;
}
}else{
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
}

while (1) {
/* set start time */
$this->start_time();

/* allow immediate return */
socket_set_nonblock($this->socket);
@socket_connect($this->socket, $host_ip, $this->port);
socket_set_block($this->socket);

switch(socket_select($r = array($this->socket), $w = array($this->socket), $f = array($this->socket), $to_sec, $to_usec)){
case 2:
/* connection refused */
$this->time = $this->get_time($this->precision);

if (($this->time*1000) timeout) {
$this->ping_response = "TCP Ping connection refused (" . $this->time*1000 . " ms)";
$this->ping_status   = $this->time*1000;
}

$this->close_socket();

return true; /* "connection refused" says: host is alive (else ping would time out) */
case 1:
/* connected, so calculate the total time and return */
$this->time = $this->get_time($this->precision);

if (($this->time*1000) timeout) {
$this->ping_response = "TCP Ping Success (" . $this->time*1000 . " ms)";
$this->ping_status   = $this->time*1000;
}

$this->close_socket();

return true;
case 0:
/* timeout */
$this->ping_response = "TCP ping timed out";
$this->ping_status   = "down";

$this->close_socket();

return false;
}
}
} else {
$this->ping_response = "Destination address not specified";
$this->ping_status   = "down";

return false;
}
} /* end ping_tcp */

function ping($avail_method = AVAIL_SNMP_AND_PING, $ping_type = PING_ICMP, $timeout=500, $retries=3) {
/* initialize variables */
$ping_ping = true;
$ping_snmp = true;

$this->ping_status   = "down";
$this->ping_response = "Ping not performed due to setting.";
$this->snmp_status   = "down";
$this->snmp_response = "SNMP not performed due to setting or ping result.";
$this->avail_method  = $avail_method;

/* short circuit for availability none */
if ($avail_method == AVAIL_NONE) {
$this->ping_status = "0.00";
return true;
}

if ((!function_exists("socket_create")) && ($avail_method != AVAIL_NONE)) {
$avail_method = AVAIL_SNMP;
cacti_log("WARNING: sockets support not enabled in PHP, falling back to SNMP ping");
}

if (($retries  5)) {
$this->retries = 2;
}else{
$this->retries = $retries;
}

if ($timeout  $this->timeout = 500;
}else{
$this->timeout = $timeout;
}

/* decimal precision is 0.0000 */
$this->precision = 5;

/* snmp pinging has been selected at a minimum */
$ping_result = false;
$snmp_result = false;

/* icmp/udp ping test */
if (($avail_method == AVAIL_SNMP_AND_PING) ||
($avail_method == AVAIL_SNMP_OR_PING) ||
($avail_method == AVAIL_PING)) {
if ($ping_type == PING_ICMP) {
$ping_result = $this->ping_icmp();
}else if ($ping_type == PING_UDP) {
$ping_result = $this->ping_udp();
}else if ($ping_type == PING_TCP) {
$ping_result = $this->ping_tcp();
}
}

/* snmp test */
if (($avail_method == AVAIL_SNMP_OR_PING) && ($ping_result == true)) {
$snmp_result = true;
$this->snmp_status = 0.000;
}else if (($avail_method == AVAIL_SNMP_AND_PING) && ($ping_result == false)) {
$snmp_result = false;
}else if (($avail_method == AVAIL_SNMP) || ($avail_method == AVAIL_SNMP_AND_PING)) {
if (($this->host["snmp_community"] == "") && ($this->host["snmp_version"] != 3)) {
/* snmp version 1/2 without community string assume SNMP test to be successful
   due to backward compatibility issues */
$snmp_result = true;
$this->snmp_status = 0.000;
}else{
$snmp_result = $this->ping_snmp();
}
}

switch ($avail_method) {
case AVAIL_SNMP_OR_PING:
if (($this->host["snmp_community"] == "") && ($this->host["snmp_version"] != 3)) {
if ($ping_result) {
return true;
}else{
return false;
}
}elseif ($snmp_result) {
return true;
}elseif ($ping_result) {
return true;
}else{
return false;
}
case AVAIL_SNMP_AND_PING:
if (($this->host["snmp_community"] == "") && ($this->host["snmp_version"] != 3)) {
if ($ping_result) {
return true;
}else{
return false;
}
}elseif (($snmp_result) && ($ping_result)) {
return true;
}else{
return false;
}
case AVAIL_SNMP:
if ($snmp_result) {
return true;
}else{
return false;
}
case AVAIL_PING:
if ($ping_result) {
return true;
}else{
return false;
}
default:
return false;
}
} /* end_ping */

function is_ipaddress($ip_address = '') {
/* check for ipv4/v6 */
if (substr_count($ip_address, ":")) {
/* compressed dot format */
if (substr_count($ip_address, "::")) {
$ip_address = str_replace("::", ":", $ip_address);
$segments   = explode(":", $ip_address);
}else{
$segments = explode(":", $ip_address);

if (sizeof($segments) != 8) {
/* should be 8 segments */
return false;
}
}

$i = 0;
foreach ($segments as $segment) {
$i++;

if ((trim($segment) == "") && ($i == 1)) {
continue;
}elseif (!is_numeric("0x" . $segment)) {
return false;
}
}

return true;
}else if (strlen($ip_address)  $octets = explode('.', $ip_address);

$i = 0;

if (count($octets) != 4) {
return false;
}

foreach($octets as $octet) {
if ($i == 0 || $i == 3) {
if(($octet  255)) {
return false;
}
}else{
if(($octet  255)) {
return false;
}
}

$i++;
}

return true;
}else{
return false;
}
}
}

?>

可先回避一下
socket_select($r = array($this->socket), $w = NULL, $f = NULL, $to_sec, $to_usec)
写作
@socket_select($r = array($this->socket), $w = NULL, $f = NULL, $to_sec, $to_usec)
也可以 error_reporting(E_ALL ^ E_STRICT); 一下

由原型
int socket_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec] )
可知,前三个参数是引用传递的
从 php5.3 起,引用必须产生于实体,否则就会报错
并不排除以后会联回避都不行了
正确的写法是
$r = array($this->socket);
$w = NULL;
$f = NULL;
socket_select($r, $w, $f, $to_sec, $to_usec)

??板大,
??已?解?了,
感恩!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage