Hallo,
ich möchte gerne eine Funktion schreiben, die überprüft ob die neu zu erstellene Definition eines Service mit den Eigenschaften schon in der Datei vorhanden ist.
Erst einmal die Dateien, bevor das Problem kommt.
Services.cfg
Per Funktion möchte ich nun aus der Service_Eintragen.php überprüfen ob diese Einstellungen schon vorhanden sind.
Service_Eintragen.php
So werden die Einträge generiert. und dann mit der Funktion in die CFG-Datei geschrieben. Nun brauche ich eine 2. Funktion die überprüft ob die Einstellungen schon vorhanden sind.
Dies habe ich bereits wie folgt angefangen
Service_Eintragen.php
Die Argumente:
service -> um das ganze eindeutiger zu definieren
$file_services -> ist die Datei die geöffnet werden soll
$eintrag -> Ist das Array was ich oben geschrieben habe
Und in der Data.php steht folgendes:
Data.php
Nun scheint es aber so, als ob diese Funktion garnicht funktioniert, denn es wird kein Rückgabewert zurück gegeben. Und auch die If-Abfragen werden nicht richtig gemacht.
Wer kann mir da helfen und eine kleine Funktion schreiben?
Danke für die Mühe.
Gruß
Papenburger
ich möchte gerne eine Funktion schreiben, die überprüft ob die neu zu erstellene Definition eines Service mit den Eigenschaften schon in der Datei vorhanden ist.
Erst einmal die Dateien, bevor das Problem kommt.
Services.cfg
Wie ihr seht unterscheiden sich die beiden Einträge durch die notification_options und process_perf_data.define service {
host_name host 1
service_description PING
check_command check_ping00.0,20%!500.0,60%
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
notification_interval 120
contact_groups nagios-admins
check_period 24x7
notification_period 24x7
notification_options c,w,u,r
process_perf_data 0
}
define service {
host_name host 2
service_description PING
check_command check_ping00.0,20%!500.0,60%
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
notification_interval 120
contact_groups nagios-admins
check_period 24x7
notification_period 24x7
notification_options c,u
process_perf_data 1
}
Per Funktion möchte ich nun aus der Service_Eintragen.php überprüfen ob diese Einstellungen schon vorhanden sind.
Service_Eintragen.php
PHP:
$eintrag = array();
$eintrag["host_name"] = $host_name[0];
$eintrag["service_description"] = $service_description[0];
$eintrag["check_command"] = $check_command[0];
$eintrag["max_check_attempts"] = $max_check_attempts[0];
$eintrag["normal_check_interval"] = $normal_check_interval[0];
$eintrag["retry_check_interval"] = $retry_check_interval[0];
$eintrag["check_period"] = $check_period[0];
$eintrag["notification_interval"] = $notification_interval[0];
$eintrag["notification_period"] = $notification_period[0];
$eintrag["notification_options"] = $not_opt[0];
$eintrag["contact_groups"] = $contact_groups[0];
$eintrag["perf_data"] = $perf_data[0];
Dies habe ich bereits wie folgt angefangen
Service_Eintragen.php
PHP:
$check=checkEntry("service", $file_services, $eintrag);
service -> um das ganze eindeutiger zu definieren
$file_services -> ist die Datei die geöffnet werden soll
$eintrag -> Ist das Array was ich oben geschrieben habe
Und in der Data.php steht folgendes:
Data.php
PHP:
function checkEntry($type, $file, $data)
{
$parse_array_services = parse_ini_file($file, TRUE);
foreach($parse_array_services as $key_service=>$array_services)
{
if($array_services[host_name]==$data[host_name]){$fehlernummer="1";}
elseif($array_services[service_description]==$data[service_description]){$fehlernummer="1";}
und so weiter
}
return($fehlernummer);
}
Wer kann mir da helfen und eine kleine Funktion schreiben?
Danke für die Mühe.
Gruß
Papenburger