PABX criado para pesquisas
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

108 lines
4.4 KiB

#!/usr/bin/php -q
<?php
error_reporting(E_ERROR);
ini_set('display_errors', 0);
ini_set("default_socket_timeout", 5);
echo "Inicio: " . date('d/m/Y H:i:s') . "\n";
$comando = $argv[1] ? $argv[1] : "/var/spool/asterisk/monitor/";
$somaSize = 0;
$vpnOffline = 0;
$vpnOnline = 0;
$cloud = array('vpn' => '10.254.254.210', 'pass' => false);
try {
$resp = GetConnect();
while ($data = mssql_fetch_array($resp)) {
$size = ___GetPermissionsSSH($data['vpn'], $comando);
$cmdVersao = 'php -r "require \'/var/www/html/aplicativo/util/funcoesApl.php\'; echo GetVersao();"';
if ($data['vpn'] == $cloud['vpn'] && $cloud['pass'] == false) {
$somaSize += $size;
$cloud['pass'] = true;
} else if ($data['vpn'] != $cloud['vpn']) {
$somaSize += $size;
}
echo "-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n";
echo sprintf("Emp: %s | CNPJ: %s | VPN: %s | Audio Size: %s | Versao: %s \n", substr(str_pad($data['RazaoSocial'], 50, ' '), 0, 50), $data['CGC_CPF'], str_pad($data['vpn'], 16, " "), str_pad(convertToReadableSize($size),19, ' '), ___GetPermissionsSSH($data['vpn'], $cmdVersao, 'ALL'));
}
echo "-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n";
echo "Tamanho Total: " . convertToReadableSize($somaSize) . " | VPN Online: $vpnOnline | VPN Offline: $vpnOffline";
echo "\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n";
} catch (Exception $ex) {
echo $ex->getMessage();
}
function GetConnect() {
$dbhost = "192.168.115.28";
$dbname = "VendaMaisDB_simplesip";
$user = "sa";
$passwd = "SimpleS_root";
$conn = mssql_connect($dbhost, $user, $passwd) or die(mssql_get_last_message());
mssql_select_db($dbname) or die(mssql_get_last_message());
$query = "select 0 as ord, ClienteId, RazaoSocial, CGC_CPF, dbo.sonumero(substring(FichaTecnica, charindex('VPN', FichaTecnica) + 5, 14), '.') as vpn
from Clientes
where RamoDeAtividadeId = 64
and AtivoCliente = 1
--and Fornecedor = 1
and IsCliente = 1
and dbo.sonumero(substring(FichaTecnica, charindex('VPN', FichaTecnica) + 5, 14), '.') <> ''";
$result = mssql_query($query, $conn);
if (!$result) {
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel consultar as VPN's.");
}
return $result;
}
function ___GetPermissionsSSH($ip, $comando, $modo = 'HD') {
$connection = ssh2_connect($ip, 2223);
$auth = ssh2_auth_password($connection, 'simples', '#uwabaki@8280_$');
if ($auth === false) {
ssh2_auth_password($connection, 'simples', '@pentatonica_8280#');
}
if (!$connection) {
GravarLog("Nao foi possivel conectar na central! VPN: $ip", 'ERROR');
return " -- ";
}
if($modo == 'HD') {
$stdio_stream = ssh2_exec($connection, "du -hsb $comando | awk {'print $1'}" . "\n");
} else if ($modo == 'ALL'){
$stdio_stream = ssh2_exec($connection, $comando . "\n");
}
stream_set_blocking($stdio_stream, true);
$sistema = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDIO);
$sistema = stream_get_contents($sistema);
return $sistema;
}
function GravarLog($log, $type = 'DEBUG') {
$patLog = "/var/log/central_algar.log";
$log = date('d/m/Y H:i:s') . " [ $type ] " . $log . "\n";
file_put_contents($patLog, $log, FILE_APPEND);
}
function convertToReadableSize($size) {
global $vpnOffline, $vpnOnline;
if ($size > 0) {
$vpnOnline ++;
$base = log($size) / log(1024);
$suffix = array("", "KB", "MB", "GB", "TB");
$f_base = floor($base);
return round(pow(1024, $base - floor($base)), 1) . $suffix[$f_base];
} else {
$vpnOffline ++;
return ' -- ';
}
}