Festplattenspeicherüberpfüfung für Server mit Warnfunktion

  • huhu leuuude,

    will mir grad was basteln was die festplatten meiner server hier überwacht und bei speichermangel sowie einmal täglich einen bericht per email über smtp an mich schickt!

    so theoretisch kein problem nur hab ich keine lust jedes script für jeden einzelnen server anzupassen! (also betreffen absenderemail, festplattenbezeichnungen usw. - ich denke ihr wisst was ich meine - das sind ungefähr 20-25 server auf denen ein solches script laufen soll!)

    so hier nun meine frage:

    was denkt ihr wie man sowas am geschicktesten realisieren könnte? vielleicht hat ja sogar jemand schon einen ansatz! also sendefunktion per smtp is kein problem...

    was ich mir vielleicht schon überlegt hab, ob man vielleicht sone client-server variante basteln könnte?!?!?! jemand ne idee?

    EDIT:
    also ich hätte in der mail (log - mir wurst) gerne eine anzeige der komplettetn festplattenkapazität - die freie kapazität und die belegten bytes ;) das is ja nich schwierig im endeffekt - nur so nomal das ihr versteht was ich meine... und halt dann bei einem ereigniss - zum beispiel nur noch 2 gb frei - ne warnmeldung mit der gleichen statusmeldung!


    greetz oli :rock:

    Einmal editiert, zuletzt von oliverh (30. Mai 2007 um 14:05)

  • Ja, bastelst halt einen "Client", der Systeminfos sammelt. Identifizieren kannst Du doch den Server anhand seines Hostnames / IP-Adresse (Könnte der Betreff sein, z.B. "SysReport from [HOSTNAME] " & _Now()" oder so.
    Dann bastelst Dir eine Config (am leichtesten INI) und schreibst da Empfänger usw. rein, halt alles was dynamisch sein soll. Dann schreibst Dir ein Skript, was ein Netzlaufwerk zu jedem Server aufmacht, das SysReport Skript rüberkopiert und dann führst du es mit PSExec.exe oder so aus...

    PS: Was meinst Du mit Festplattenbezeichnung? Kannst doch auch alles dynamisch halten...

  • Ja, wie gesagt, baust Dir ein Array:

    Spoiler anzeigen
    [autoit]

    Local $i_drives = 5
    Local $a_driveletters[$i_drives] = ["C:", "D:", "E:", "F:", "G:"]
    Local $a_drivetotalspaces[$i_drives] = [-1, -1, -1, -1, -1]

    [/autoit]


    oder halt soviele wie Du hast und dann machst ne For-Schleife:

    Spoiler anzeigen
    [autoit]

    For $i = 0 To UBound($a_driveletters, 1) - 1 Step 1
    If DriveGetType($a_driveletters[$i]) = "Fixed" Then
    $a_drivetotalspaces[$i] =DriveSpaceTotal($a_driveletters[$i] & "\")
    EndIf
    Next

    [/autoit]


    usw. Kannst dann ja beliebieg aufbohren, wenn Du dann alle Infos hast schickst Du sie per SMTP weg - fertig...

  • danke das schaut schonmal gut aus... im prinzip kann ich das ja jetzt für alle laufwerksbuchstaben machen, da er ja in der schleife prüft ob es auch wirklich eine platte/partition is... oder?

  • ok merci!

    mal ne frage! also abgesehen davon das ichs eigentlich gerne selber machen wollte, gibt es da nicht vielleicht schon fertige tools die solche warnungen generieren und wegen mir ne email über smtp dann versenden??? weil dann brauch ich hier die zeit nich zum proggen "vergäuden" und könnt des gleich umsetzen...

    greetz oli

    • Offizieller Beitrag

    Es geht auch einfacher!

    [autoit]

    Local $a_driveletters = DriveGetDrive("FIXED") ; Nur Festplatten/-partitionen
    Local $a_drivetotalspaces[$a_driveletters[0]+1] = [$a_driveletters[0]]

    [/autoit][autoit][/autoit][autoit]

    For $i = 1 To $a_driveletters[0]
    $a_drivetotalspaces[$i] = DriveSpaceTotal($a_driveletters[$i] & "\")
    Next

    [/autoit][autoit][/autoit][autoit][/autoit]
  • alles klar ich werd das ganze mal testen... n fertiges tool kennt keiner? wenn ich jetzt so den aufwand sehe dann is das vielleicht doch besser...