#!/usr/bin/php -q 0) { $rxd = ($rx-_var($data[$port],'rx',0))/$ts*8; $txd = ($tx-_var($data[$port],'tx',0))/$ts*8; $rx_speed = my_scale($rxd,$unit,1,-1).' '.str_replace('B','b',$unit).'ps'; $tx_speed = my_scale($txd,$unit,1,-1).' '.str_replace('B','b',$unit).'ps'; } else { $rxd = $txd = 0; $rx_speed = '---'; $tx_speed = '---'; } $data[$port]['rx'] = $rx; $data[$port]['tx'] = $tx; $echo['port'][] = [$port,$rx_speed,$tx_speed,$rxd,$txd]; // interface general information $mtu = port_get_contents("$net/$port/mtu"); $link = port_get_contents("$net/$port/carrier")==1; if (substr($port,0,4)=='bond') { if ($link) { $bond_mode = file_exists("$bond/$port") ? str_replace('Bonding Mode: ','',@file("$bond/$port",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES)[1]) : '---'; $echo['mode'][] = "$bond_mode, mtu $mtu"; } else $echo['mode'][] = "bond down"; } elseif ($port=='lo') { $echo['mode'][] = $link ? "loopback" : "not set"; } else { if ($link) { $speed = port_get_contents("$net/$port/speed"); $duplex = port_get_contents("$net/$port/duplex"); $echo['mode'][] = "$speed Mbps, $duplex duplex, mtu $mtu"; } else $echo['mode'][] = "interface down"; } // interface counters $echo['rxtx'][] = $rx; $echo['rxtx'][] = $tx; // interface errors $rx_errors = port_get_contents("$net/$port/statistics/rx_errors"); $rx_drops = port_get_contents("$net/$port/statistics/rx_dropped"); $rx_fifo = port_get_contents("$net/$port/statistics/rx_fifo_errors"); $tx_errors = port_get_contents("$net/$port/statistics/tx_errors"); $tx_drops = port_get_contents("$net/$port/statistics/tx_dropped"); $tx_fifo = port_get_contents("$net/$port/statistics/tx_fifo_errors"); $echo['stat'][] = "Errors: {$rx_errors}
Drops: {$rx_drops}
Overruns: {$rx_fifo}"; $echo['stat'][] = "Errors: {$tx_errors}
Drops: {$tx_drops}
Overruns: {$tx_fifo}"; } // current date and time $now = time(); $xtime = _var($display,'time')!='%R'; $xdate = _var($display,'date')=='%c'; $clock = date($xtime||$xdate ? 'g:i '.esc('').'a'.esc('') : 'G:i',$now); $date = my_date($xdate ? 'D j M Y, T' : $display['date'].', T',$now); $echo['time'] = [$clock,_($date,0)]; $echo = json_encode($echo); $md5_new = md5($echo,true); if ($md5_new !== $md5_old) { publish('update3', $echo); $md5_old = $md5_new; $time0 = $time1; } sleep(1); $time1 = microtime(true); }