Script Mail oder Trap on Error

Hallo,

gibt es eine Möglichkeit auf Grund einer bestimmten Kernel Messsage (Fehler auch Custom und Debug) ein Script zu starten. Schön wäre auch wenn man diese per Mail oder snmp trap verschicken könnte.

Gibt es da was oder könntet Ihr da was bauen ?

Danke Gruß
Oliver

Hm,

braucht das hier keiner ? Wäre doch super eine EMail bei einem Kernel error zu bekommen, oder ein Script zu starten.

Gruß

Die Sache gab es mal… Das Problem war, dass durch einen Fehler in dem „Mail Script“ einer weiterer Fehler generiert werden konnte. Dadurch hatte man dann eine nette Endlosschleife und IPS starb daran.

paresy

Könntest Du denn ein on error run script wieder einbauen ? Mir geht es darum, wenn der TMEX Timeout kommt, könnte ich den rechner neu starten.

Gruß

Würde mir auch sehr gefallen da es in unregelmäßigen Abständen immer wieder vorkommt das sich die TMEX-Instanz, genauer gesagt der 1-Wire-USB verabschiedet. Bekomme ich das zu Anfang mit kann ich IPS noch beenden und neu starten, verpasse ich den Zeitpunkt läuft der Speicher voll und ich kann IPS nur noch durch einen Rechnerneustart zum Arbeiten bewegen.

Hallo zusammen,

gibt es da eigentlich Neuigkeiten? Ich habe immer mal wieder das 1wire abstürzt oder so und fände es super, wenn IPS mir Fehler per Mail sendet oder zumindest ein Script aufruft.

Hat da einer schonmal was gebastelt?

Gruß Hooker

Man könnte das log parsen und nach bestimmten Fehlern Aktionen starten.

Ok - gute Idee. Ich hab da mal was gebastelt - geht bestimmt besser, erfüllt aber erstmal seinen Zweck:

$verz = "c:/program files/ip-symcon/logs/";

function ndiv3($dir,$indent,$jdatum) {
   global $datformat;
    $ldatum = $jdatum;
    $ldatei = '';
  //  echo $indent."d $dir:<br>
";   # Testausgabe
    $handle=opendir($dir);
    while ($file = readdir($handle)) {
      if( $file != "." and $file != "..") {
         if (is_dir($dir . $file)) {
          list($fdatei, $fdatum) = ndiv("$dir$file/",
"$indent  ",$ldatum);
         } else {
         // echo "$indent $file  ";  # Testausgabe
          $fdatei = "$dir$file";

	$fdatum = date("Y-m-d H:i:s",filemtime($fdatei));
          //echo $fdatum."<br>";  # Testausgabe
         }
         if($fdatum>$ldatum) {
            $ldatum = $fdatum;
            $ldatei = $file;
         }
        }
    }
    closedir($handle);
    return array($ldatei,$ldatum);
}
list($jdatei,$jdatum) = ndiv3($verz, "", "0000-00-00");

$fehler_meldung = array();
$datei = file($verz.$jdatei);
foreach ($datei as $zeile) {


list ($datum, $id, $klasse, $sender, $meldung) = preg_split("/[|]+/", $zeile);
if( $klasse == 'ERROR'){
//if( $sender == 'heizung'){
	array_push($fehler_meldung, $zeile);
}



}
 copy($verz.$jdatei, "c:/logs/ips_log.txt"); 
if(count($fehler_meldung) > 0){
	send_mail('warning', 'Fehler im Protokoll', implode(";", $fehler_meldung), implode(";", $fehler_meldung),'', '');
 print "anzahl ".count($fehler_meldung);
}