$dev['color'] = read_disk($dev['device'], 'color'); $dev['temp'] = read_disk($dev['device'], 'temp'); $dev['status'] = $status; echo "<tr>"; echo "<td>".device_info($dev)."</td>"; echo "<td>".device_desc($dev)."</td>"; echo "<td>".my_temp($dev['temp'])."</td>"; if (file_exists("/tmp/preclear_stat_{$dev['device']}")) { $text = exec("cut -d'|' -f3 /tmp/preclear_stat_{$dev['device']} | sed 's:\^n:\<br\>:g'"); if (strpos($text,'Total time')===false) $text = 'Preclear in progress... '.$text; echo "<td colspan='8' style='text-align:right'><em>$text</em></td>"; } else echo "<td colspan='8'></td>"; echo "</tr>"; } break; case 'parity': $data = array(); if ($var['mdResync']>0) { $data[] = my_scale($var['mdResync']*1024, $unit)." $unit"; $data[] = my_clock(floor(($var['currTime']-$var['sbUpdated'])/60)); $data[] = my_scale($var['mdResyncPos']*1024, $unit)." $unit (".number_format(($var['mdResyncPos']/($var['mdResync']/100+1)),1,substr($display['number'],0,1),'')." %)"; $data[] = my_scale($var['mdResyncDb']/$var['mdResyncDt']*1024, $unit, 1)." $unit/sec"; $data[] = my_clock(round(((($var['mdResyncDt']*(($var['mdResync']-$var['mdResyncPos'])/($var['mdResyncDb']/100+1)))/100)/60),0)); $data[] = $var['sbSyncErrs']; echo implode(';',$data); } break; } ?>
$ports[$i++] = str_replace('yes','loopback',exec("ethtool lo|grep -Po '^\s+Link detected: \K.+'")); } else { exec("ethtool $port|grep -Po '^\s+(Speed|Duplex): \K[^U]+'",$info); $ports[$i++] = $info[0] ? "{$info[0]} - ".strtolower($info[1])." duplex" : "not connected"; } } break; case 'port': exec("ifconfig -s|awk '/^(bond|eth|lo)/{print $3\"#\"$7}'",$ports); break; case 'link': exec("ifconfig -s|awk '/^(bond|eth|lo)/{print \"Errors: \"$4\"<br>Drops: \"$5\"<br>Overruns: \"$6\"#Errors: \"$8\"<br>Drops: \"$9\"<br>Overruns: \"$10}'",$ports); break; default: $ports = array();} echo implode('#',$ports); break; case 'parity': $var = parse_ini_file("state/var.ini"); echo "<span class='orange p0'><strong>".($var['mdNumInvalid']==0 ? 'Parity-Check' : ($var['mdInvalidDisk']==0 ? 'Parity-Sync' : 'Data-Rebuild'))." in progress... Completed: ".number_format(($var['mdResyncPos']/($var['mdResync']/100+1)),0)." %.</strong></span>". "<br><em>Elapsed time: ".my_clock(floor(($var['currTime']-$var['sbUpdated'])/60)).". Estimated finish: ".my_clock(round(((($var['mdResyncDt']*(($var['mdResync']-$var['mdResyncPos'])/($var['mdResyncDb']/100+1)))/100)/60),0))."</em>"; break; case 'shares': $names = explode(',',$_POST['names']); switch ($_POST['com']) { case 'smb': exec("lsof /mnt/user /mnt/disk* 2>/dev/null|awk '/^smbd/ && $0!~/\.AppleD(B|ouble)/ && $5==\"REG\"'|awk -F/ '{print $4}'",$lsof); $counts = array_count_values($lsof); $count = array(); foreach ($names as $name) $count[] = isset($counts[$name]) ? $counts[$name] : 0; echo implode('#',$count); break; case 'afp': case 'nfs': // not available break;} break;}