<?php
//cron datei von SNMP monitorer
//start von flush
$errorlogdatei = fopen("".time().".txt", 'w+');
ob_start();
error_reporting("16");
$server = "192.168.0.4";
$testo = new mysqli("daten");
function sender ($array) {//massen überträger von daten per post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://192.168.0.4/Snmp/test/index.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $array);
curl_exec($ch);
curl_close($ch);
}
if($_GET['data'] == 1){//das hier wird nur ausgeführt wenn Cron das skript aussführt
$arr1 = snmp3_real_walk('192.168.0.13', 'nutzer', 'authPriv', 'MD5', '', 'AES', '', 'iso.3.6.1.2.1.2.2.1'); // SNMP abfrage
$arr2 = snmp3_real_walk('192.168.0.13', 'nutzer', 'authPriv', 'MD5', '', 'AES', '', 'iso.3.6.1.2.1.1.3');
$ausdruck = array_merge($arr1,$arr2);
exec("ping -c 1 -q ".$server." | grep error ",$ping);
$sicherung = 1;
}
if (isset($ping[0])){ //wenn server nicht erreichbar. werden werte hier zwischen gespeichert
$wert = serialize ($ausdruck);
$azs = mysqli_real_query($testo, "Insert into speicher (`date`, `werte`, `geraet`) VALUES ('".time()."', '$wert', 'switch')");
$azs1 = mysqli_real_query($testo, "UPDATE `snmp`.`conf` SET `erreichbar` = '0', `speicher` = '1' WHERE `conf`.`id` = 1;");
die();
}
$abfrage = mysqli_query($testo, "SELECT * FROM `conf` where geraet = 'switch'");
$ausgabe = mysqli_fetch_array($abfrage, MYSQLI_ASSOC);
$anzahl = mysqli_query($testo,"SELECT COUNT(*) FROM `speicher`");
$ausgab1e = mysqli_fetch_array($anzahl, MYSQLI_ASSOC);
if ($ausgab1e['COUNT(*)'] != 0){//start von übertragung
if ($sicherung == 1){
$wert = serialize ($ausdruck);
$azs = mysqli_real_query($testo, "Insert into speicher (`date`, `werte`, `geraet`) VALUES ('".time()."', '$wert', 'switch')");
$azs1 = mysqli_real_query($testo, "UPDATE `snmp`.`conf` SET `erreichbar` = '0', `speicher` = '1' WHERE `conf`.`id` = 1;");
}
if ($ausgab1e['COUNT(*)'] <= 250){ // zeilen zählen
$schleife = $ausgab1e['COUNT(*)'];
}else {$schleife = 250;}
$maxx = 0;
while($schleife >= $maxx) {//daten aus der DB lesen übertragen und aus DB löschen
$abfrage = mysqli_query($testo, "SELECT * FROM `speicher` Where geraet = 'switch' ORDER BY `date` ASC limit 1");
print mysqli_error($testo);
$ausgabe = mysqli_fetch_array($abfrage, MYSQLI_ASSOC);
$eins = unserialize($ausgabe['werte']);
$eins['date'] = $ausgabe['date'];
$eins['more'] = "1";
sender($eins);
mysqli_real_query($testo, "DELETE FROM `speicher` WHERE `date` = '".$eins['date']."' and `geraet` = 'switch'");
++$maxx;
}
}else {//standart ablauf wenn keine daten in DB sind
if ($sicherung == 1){
$ueber = $ausdruck;
$ueber['date'] = time();
sender($ueber);
}
}
//flush speicher
$img2 = ob_get_contents();
fwrite($errorlogdatei,$img2);
fclose($errorlogdatei);
?>