mirror of
https://gitlab.com/JKANetwork/CheckServer.git
synced 2026-02-22 04:54:06 +01:00
BSD Disks and Fix on Linux calculations of space
This commit is contained in:
@@ -149,12 +149,11 @@ function cron_status($db_conn,$time,$pc){
|
||||
$resu = commandbyssh($pc['IP'],$pc['SSHPort'],$pc['User'],$pass,'sysctl hw.physmem');
|
||||
$line = preg_replace("/[[:blank:]]+/",' ',$resu);
|
||||
$part = explode(' ',$line);
|
||||
//Mem: total used free shared buff/cache available
|
||||
$detram = $part[1]; //Total RAM
|
||||
|
||||
$resu = commandbyssh($pc['IP'],$pc['SSHPort'],$pc['User'],$pass,'vmstat | grep -E \'([0-9]+\w+)+\' | awk \'{print $5}\'');
|
||||
$line = preg_replace("/[[:blank:]]+/",' ',$resu);
|
||||
$freeram = $line; //Free RAM
|
||||
$freeram = $line*1024; //Free RAM (In Bytes)
|
||||
break;
|
||||
}
|
||||
dbw_query($db_conn,"INSERT INTO S_HISTRAM (ID_SERV,`Timestamp`,Freeram,Detram) VALUES ('$pc[ID_SERV]','$time','$freeram','$detram')");
|
||||
@@ -188,31 +187,33 @@ function cron_status($db_conn,$time,$pc){
|
||||
$unidades[] = array ($part[0],$part[2],$part[1]);
|
||||
}
|
||||
}
|
||||
}else{ //Systemd and init goes same way
|
||||
}else if ($pc['SO'] == "BSD"){ //BSD "Standard" command df, not as GNU/Linux df one
|
||||
$resu = commandbyssh($pc['IP'],$pc['SSHPort'],$pc['User'],$pass,'exec df -P -k -t notmpfs,devfs,fdescfs | tail -n+2');
|
||||
$explines = preg_split('/[\r\n]+/', $resu);
|
||||
foreach($explines as $line){
|
||||
$line = preg_replace("/[[:blank:]]+/",' ',$line);
|
||||
$part = explode(' ',$line);
|
||||
//Filesystem 1024-blocks Used Avail Capacity Mounted on
|
||||
if (isset($part[1])){
|
||||
$unidades[] = array ($part[5],$part[1]*1024,$part[3]*1024);//Drive, Space, FreeSpace (*1024 because has to be in bytes)
|
||||
}
|
||||
}
|
||||
}else{ //LINUX. Almost standard df
|
||||
//I use exec for avoid alias that bash can have (Anarchy has a custom df alias for example)
|
||||
$resu = commandbyssh($pc['IP'],$pc['SSHPort'],$pc['User'],$pass,'exec df -P -B1 --output=fstype,size,avail,target -x tmpfs -x udev -x devtmpfs | tail -n+2');
|
||||
$resu = commandbyssh($pc['IP'],$pc['SSHPort'],$pc['User'],$pass,'exec df --output=source,size,used,avail,pcent,target -B1 -x tmpfs -x udev -x devtmpfs | tail -n+2');
|
||||
|
||||
if (strpos ($resu , 'df --help')){ //Esto suele pasar en redhat y centos porque No soportan --output Probamos alternativa que parece ser estandar en estos sistemas
|
||||
if (strpos ($resu , 'df --help')){ //This can happen in some OS like redhat or centos because no support of --output. We try to use standard POSIX option
|
||||
$resu = commandbyssh($pc['IP'],$pc['SSHPort'],$pc['User'],$pass,'exec df -P -B1 -x tmpfs -x udev -x devtmpfs | tail -n+2');
|
||||
$explines = preg_split('/[\r\n]+/', $resu);
|
||||
foreach($explines as $line){
|
||||
$line = preg_replace("/[[:blank:]]+/",' ',$line);
|
||||
$part = explode(' ',$line);
|
||||
//S.ficheros Bloques de 1 Usado Dispon Ocupado Montado en
|
||||
if (isset($part[1])){
|
||||
$unidades[] = array ($part[5],$part[1],$part[3]);//Drive, Space, FreeSpace
|
||||
}
|
||||
}
|
||||
}else{ //Si el comando acabó correctamente, todo estandar (Centos 6+, Debian, Ubuntu...)
|
||||
$explines = preg_split('/[\r\n]+/', $resu);
|
||||
foreach($explines as $line){
|
||||
$line = preg_replace("/[[:blank:]]+/",' ',$line);
|
||||
$part = explode(' ',$line);
|
||||
//S.ficheros,Tamaño,Usado,Montado en
|
||||
if (isset($part[1])){
|
||||
$unidades[] = array ($part[3],$part[1],$part[2]);//Drive, Space, FreeSpace
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$explines = preg_split('/[\r\n]+/', $resu);
|
||||
foreach($explines as $line){
|
||||
$line = preg_replace("/[[:blank:]]+/",' ',$line);
|
||||
$part = explode(' ',$line);
|
||||
//S.ficheros Bloques de 1 Usado Dispon Ocupado Montado en
|
||||
if (isset($part[1])){
|
||||
$unidades[] = array ($part[5],$part[1],$part[3]);//Drive, Space, FreeSpace
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user