PING mit Mailversand (Server Überwachen)

  • Huhu,

    ich hab mal wieder ein Problem. Was ich möchte ist das ich alle ca. 3 Minuten einen Ping auf meine Server mache und wenn diese/r nicht verfügbar ist eine Mail rausgeschickt wird.
    Im Prinzip funktioniert der Mail versand ohne Probleme (Andere Scripte laufen sehr gut z.B. Backupbenachrichtigungen etc.)

    IP Adressen und Benutzer daten sind im Orginal Script richtig.

    Jetzt steh ich da und finde keine Lösung. Mit denn MSGBoxen klappt es aber der Versand der Mail nicht. Habt ihr eine Idee? Von mir aus auch was ganz anderes. Danke schon mal im Voraus.

    LG
    Pre

  • Wo ist denn dein Error-Handling für die _INetSmtpMailCom?
    Einmal @error direkt danach abfragen bzw. da es sich um ein COM-Objekt handelt folgendes noch an den Anfang des Skriptes:

    AutoIt
    ObjEvent("AutoIt.Error", "_ErrFunc")

    und dann folgende Funktion noch irgendwo im Skript unterbringen:

    Dann solltest du verwertbare Informationen bekommen wenn die _INetSmtpMailCom() fehl schlägt.

    Edit: Sehe gerade, dass du eine eigene MyErrFunc schon registriert hast.
    Was schmeißt die für Fehlermeldungen?

    2 Mal editiert, zuletzt von AspirinJunkie (2. Juni 2015 um 10:36)

    • Offizieller Beitrag

    Hallo,

    3 Fehler sind mir aufgefallen.

    • $Importance = "Hight" gibt es nicht, sondern $Importance = "High"
    • der Port für mail.gmx.net ist 587 Edit: geht doch mit Port 465 ?(
    • Bei dem Aufruf von _INetSmtpMailCom fehlen 3 Parameter, muss so aufgerufen werden
      _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)

    Noch ein paar Tipps!

    Ich würde mich nie auf ein einzelnen Ping verlassen. Es kann nämlich passieren das der erste Ping fehlschlägt, das hängt mit dem ARP Cache zusammen!
    Besser ist ein Ping in einer Schleife mit Timeout z.B. so

    AutoIt
    Const $TimeOut = 250
    
    
    $TimeoutTimer = TimerInit()
    Do
    	$PingDc = Ping($IPDC, 50)
    Until TimerDiff($TimeoutTimer >= $TimeOut) Or $PingDc > 0

    Für einen ersten Check ist Ping in Ordnung, aber wenn der Rechner per Ping erreichbar ist heißt das noch lange nicht das die Dienste auch laufen.
    Man sollte evtl. zusätzlich noch eine Überprüfung der Dienste z. B. via WMI-Abfrage einbauen.

  • Hi,

    Ping nützt dir nur etwas, wenn du herausfinden willst, ob der Rechner läuft.
    Das hat NICHTS damit zu tun herauszufinden, ob dort auch die benötigten Dienste, bspw. Mail/FTP/File-blablubServer-Dienste, erreichbar sind!

    vgl. HIER und HIER, die Antwortzeiten werden von M$-Betriebssystemen (und anderen btw. auch) dynamisch berechnet und können bis zu 15 Sekunden im Fall eines nicht laufenden Dienstes betragen!

  • Huhu,

    danke für die Hilfe.
    @Andy hier gehts es darum zu schauen ob Server da wenn nein dann mail an mich. Damit ich nicht erst reagieren kann wenn ich einen Anruf vom Anwender bekomme.
    @bernd670 danke die fehlenden Parameter haben es gerichtet.

    Die Dienstabfrage wird anderes geregelt intern mit einem anderen Script.

    Vielen Dank für die Hilfe

  • Huhu,

    danke für die Hilfe.
    @Andy hier gehts es darum zu schauen ob Server da wenn nein dann mail an mich. Damit ich nicht erst reagieren kann wenn ich einen Anruf vom Anwender bekomme.
    @bernd670 danke die fehlenden Parameter haben es gerichtet.

    Die Dienstabfrage wird anderes geregelt intern mit einem anderen Script.

    Vielen Dank für die Hilfe

    Ich empfehle das Tool "BLAT". ;) Der hat ein eigenes Error-Log, ist Kommandozeile(n) basiert, portable und sehr klein. Nutzen wir zum selben Zweck.

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.

  • für ein mailreporting + attachments habe ich hier folgendes script.
    die beiden Dateien body.txt & config.ini (muss in config.ini umbenannt werden) müssen im script verzeichnis liegen.


    gruß gmmg

  • @ bernd670
    Du schreibst .....

    Ich würde mich nie auf ein einzelnen Ping verlassen. Es kann nämlich passieren das der erste Ping fehlschlägt, das hängt mit dem ARP Cache zusammen!

    Ich habe in einem Sript tatsächlich, das Problem dass genau das, alle paar Wochen mal passiert . Kannst Du mir erklären was es sich mit dem ARP Code auf sich hat. Unbenommen davon, dass ich das in eine Schleife umbaue ... ich habe aber an der Stelle nicht so ewig Zeit, was ist die sichere Mindestanforderung an die Schleife?


    Danke für Antwort

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)