Skip to content

Instantly share code, notes, and snippets.

@mnofresno
Created June 2, 2018 14:17
Show Gist options
  • Save mnofresno/f607d196da8ad19ab67bc30fa04dae0b to your computer and use it in GitHub Desktop.
Save mnofresno/f607d196da8ad19ab67bc30fa04dae0b to your computer and use it in GitHub Desktop.
Informe automático del estado de un servidor
function TotalDisco($disco)
{
}
function UsadoDisco($disco)
{
}
function DiscoEnGB($disco)
{
$total = disk_total_space($disco)/pow(2,30);
$libre = disk_free_space($disco)/pow(2,30);
$usado = $total - $libre;
return array("total"=> $total,"libre"=>$libre,"usado"=>$usado);
}
function Espacio($total,$usado,$libre,$etiqueta)
{
echo $etiqueta.":<br><br>";
echo "Total: ".Formatear($total)." GB<br>";
echo "Usado: ".Formatear($usado)." GB<br>";
echo "Libre: ".Formatear($libre)." GB<br><br>";
}
function TempDisco($disco)
{
exec("sudo hddtemp ".$disco, $out);
return $out[0];
}
function Formatear($valor)
{
return number_format( $valor,2,",",".");
}
function T($id,$output)
{
return str_replace("clean","limpio",
str_replace("files","archivos",
str_replace("blocks","bloques",
str_replace("crit","critico",
str_replace("high","elevado",
str_replace("power1: ","",
str_replace("temp1: ","",$output[$id])))))));
}
function ChequeoDisco($disco)
{
exec("sudo fsck -n ".$disco,$out);
return T(3,$out);
}
exec("sensors", $temperaturas);
$load = sys_getloadavg();
$link = new mysqli("yourmysqldatabaseserver","yourmysqldatabaseuser","yourmysqldatabasepassord", "yourmysqldatabasename") or die("Error " . mysqli_error($link));
$discoSistema = DiscoEnGB("/");
$discoDatos = DiscoEnGB("/home");
$fecha = date("d/m/Y")." a las ".date("H:m");
$sistema_total = $discoSistema["total"];
$sistema_usado = $discoSistema["usado"];
$sistema_libre = $discoSistema["libre"];
$datos_total = $discoDatos["total"];
$datos_usado = $discoDatos["usado"];
$datos_libre = $discoDatos["libre"];
$temperatura_microprocesador = T(11,$temperaturas);
$temperatura_motherboard = T(2,$temperaturas);
$temperatura_disco1 = TempDisco("/dev/sda");
$temperatura_disco2 = TempDisco("/dev/sdb");
$potencia_microprocesador = T(7,$temperaturas);
$chequeo_disco1 = ChequeoDisco("/dev/md0");
$chequeo_disco2 = ChequeoDisco("/dev/md2");
$uso_microprocesador_1min = ($load[0]*100);
$uso_microprocesador_5min = ($load[1]*100);
$uso_microprocesador_15min = ($load[2]*100);
$insertar = array(
"fecha" => trim($fecha),
"sistema_total" => trim($sistema_total),
"sistema_usado" => trim($sistema_usado),
"sistema_libre" => trim($sistema_libre),
"datos_total" => trim($datos_total),
"datos_usado" => trim($datos_usado),
"datos_libre" => trim($datos_libre),
"temperatura_microprocesador" => floatval(trim($temperatura_microprocesador)),
"temperatura_motherboard" => floatval(trim($temperatura_motherboard)),
"temperatura_disco1" => floatval(trim(explode(":",$temperatura_disco1)[2])),
"temperatura_disco2" => floatval(trim(explode(":",$temperatura_disco2)[2])),
"potencia_microprocesador" => trim(explode("W",$potencia_microprocesador)[0]),
"chequeo_disco1" => trim($chequeo_disco1),
"chequeo_disco2" => trim($chequeo_disco2),
"uso_microprocesador_1min" => trim($uso_microprocesador_1min),
"uso_microprocesador_5min" => trim($uso_microprocesador_5min),
"uso_microprocesador_15min" => trim($uso_microprocesador_15min)
);
$campos = array_keys($insertar);
$valores = array_values($insertar);
$sQuery = "INSERT INTO informe_rendimiento (".implode(", ",$campos).") VALUES ('".implode("', '",$valores)."');";
$link->query($sQuery);
//echo $sQuery;
echo "<br>Informe general, estado de salud del servidor<br>".$fecha."<br><br>";
echo "Espacio en disco:<br><br>";
Espacio($sistema_total,$sistema_usado,$sistema_libre,"Particion del sistema");
Espacio($datos_total,$datos_usado,$datos_libre,"Particion de datos");
echo "Temperaturas:<br><br>";
echo "Microprocesador: ".$temperatura_microprocesador."<br>";
echo "Motherboard: ".$temperatura_motherboard."<br><br>";
echo "Discos rigidos:<br>";
echo "<br>".$temperatura_disco1."<br>";
echo "<br>".$temperatura_disco2."<br>";
echo "<br>";
echo "Potencia microprocesador: ".$potencia_microprocesador."<br>";
echo "<br>Chequeo de discos:<br>";
echo "<br>".$chequeo_disco1."<br>";
echo $chequeo_disco2."<br><br>";
echo "<br><br>Uso promedio del MICROPROCESADOR el ".$fecha."<br>";
echo "Durante el ultimo minuto: ".$uso_microprocesador_1min." %<br>";
echo "Durante los ultimos cinco minutos: ".$uso_microprocesador_5min." %<br>";
echo "Durante los ultimos quince minutos: ".$uso_microprocesador_15min." %<br>";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment