Stefan Muenz: verfuegbaren Plattenspeicher abfragen

Liebe Forumer,

angesichts der Probleme von heute waere es fein, eine Art "Selbstblockade-Funktion" ins Forums-Script einzubauen, wenn es Probleme mit dem Plattenspeicher gibt. Deshalb die Frage: wie kann man in Perl den verfuegbaren Plattenspeicher abfragen?

viele Gruesse
  Stefan Muenz

  1. Liebe Forumer,

    angesichts der Probleme von heute waere es fein, eine Art "Selbstblockade-Funktion" ins Forums-Script einzubauen, wenn es Probleme mit dem Plattenspeicher gibt. Deshalb die Frage: wie kann man in Perl den verfuegbaren Plattenspeicher abfragen?

    Es gibt da den Unix-Befehl df, also einfach mit open das Programm df starten, und dann die Ausgabe auswerten, als wäre es ne Datei.

    1. Hallo Erik

      Es gibt da den Unix-Befehl df, also einfach mit open das Programm df starten, und dann die Ausgabe auswerten, als wäre es ne Datei.

      Denke fuer den Hinweis! Fuer open muss ich allerdings die genaue Lage von dem Ding kennen. Wo liegt denn das per Default? /usr/bin/? /bin/? oder wo?

      viele Gruesse
        Stefan Muenz

      1. Hallo Erik

        Es gibt da den Unix-Befehl df, also einfach mit open das Programm df starten, und dann die Ausgabe auswerten, als wäre es ne Datei.

        Denke fuer den Hinweis! Fuer open muss ich allerdings die genaue Lage von dem Ding kennen. Wo liegt denn das per Default? /usr/bin/? /bin/? oder wo?

        viele Gruesse
          Stefan Muenz

        hey stefan ;)

        findest du sofort, indem du "which df" eingibst, das spuckt den pfad aus...

        cu

        1. Hallo,

          geht es nicht auch über:

          @arg = ("df",">speicher.txt");
          system (@arg);

          ???

          Reiner

          Hallo Erik

          Es gibt da den Unix-Befehl df, also einfach mit open das Programm df starten, und dann die Ausgabe auswerten, als wäre es ne Datei.

          Denke fuer den Hinweis! Fuer open muss ich allerdings die genaue Lage von dem Ding kennen. Wo liegt denn das per Default? /usr/bin/? /bin/? oder wo?

          viele Gruesse
            Stefan Muenz

          hey stefan ;)

          findest du sofort, indem du "which df" eingibst, das spuckt den pfad aus...

          cu

      2. Hi,

        Wo liegt denn das per Default? /usr/bin/? /bin/? oder
        wousr/bin/? /bin/? oder wo?

        normal unter "/bin/", also Pfad: "/bin/df"

        mfg
        CK1

      3. Hallo Erik

        Es gibt da den Unix-Befehl df, also einfach mit open das Programm df starten, und dann die Ausgabe auswerten, als wäre es ne Datei.

        Denke fuer den Hinweis! Fuer open muss ich allerdings die genaue Lage von dem Ding kennen. Wo liegt denn das per Default? /usr/bin/? /bin/? oder wo?

        OK, das Ding liegt in /bin, wie bereits schon gesagt. Ich hab noch mal schnell etwas Beispielcode gemacht:

        open (DF, "df");
        while (<DF>)
        {
        print "Ausgabe: " . $_;
        }

  2. hi!

    angesichts der Probleme von heute waere es fein, eine Art "Selbstblockade-Funktion" ins
    Forums-Script einzubauen, wenn es Probleme mit dem Plattenspeicher gibt. Deshalb die Frage: wie
    kann man in Perl den verfuegbaren Plattenspeicher abfragen?

    In Perl dürfte das nicht gehen, aber mit ein paar Kommandotools, die normalerweise jedes Linux haben sollte:

    === cut ===
    $avail = df grep $dev awk '{print \$4;}';
    === cut ===

    $dev ist der genaue Devicename, in $avail steht, wieviel Bytes noch verfügbar sind. Kannst du ja mal testen, ob es so auf dem Server läuft.

    bye, Frank!

    1. Auch hi

      === cut ===
      $avail = df grep $dev awk '{print \$4;}';
      === cut ===

      Warum so viel Aufhebens? Auswerten kann man doch selber, so nimmt man sich doch nur selbst evtl. interessante Informationen weg. Also einfach
        print df;
      oder
        print df -k;   # Ausgabe in kBytes, nicht in Blocks

      -k lautet zumindest unter Solaris die Option, bei anderen Unixen mag das anders sein.
      Der Pfad zu df ist bei mir /usr/sbin/df aber das mag auch mit dem OS variieren.

      So lange, Roland

      1. Warum so viel Aufhebens? Auswerten kann man doch selber, so nimmt man sich doch nur selbst evtl. interessante Informationen weg. Also einfach
          print df;
        oder
          print df -k;   # Ausgabe in kBytes, nicht in Blocks

        -k lautet zumindest unter Solaris die Option, bei anderen Unixen mag das anders sein.
        Der Pfad zu df ist bei mir /usr/sbin/df aber das mag auch mit dem OS variieren.

        Sowohl die Parameter als auch das Ausgabeformat ist plattformabhängig (ggf. sogar abhängig vom Wert der Environmentvariable $LANG) - also im Dialog (telnet) ausprobieren und dann parsen.
        Ich würde "df -k <pfad>" probieren, was ggf. "df -k" auf das Dateisystem anwendet, welches <pfad> enthält (in AIX geht das jedenfalls); das spart das Filtern von Zeilen.
        Eventuell ist sogar das verwendete "df" wichtig: /usr/bin/df ist nicht gleich /usr/ucb/df usw. ... ja, UNIX ist was Hübsches ...

        1. Hi!

          Eventuell ist sogar das verwendete "df" wichtig: /usr/bin/df ist nicht gleich /usr/ucb/df usw. ... ja, UNIX ist was Hübsches ...

          Stimmt. Kleines find nach df:
          root@moewe:/ > ll find / -name df -print
          lrwxrwxrwx   1 root     root          10 Jul 28  1999 /usr/bin/df -> ../sbin/df*
          -r-xr-xr-x   1 bin      bin        15988 Jul 16  1997 /usr/lib/fs/ufs/df*
          -r-xr-xr-x   1 bin      bin        27716 Jul 16  1997 /usr/sbin/df*
          -rwxr-xr-x   1 bin      bin          624 Jul 16  1997 /usr/ucb/df*
          -r-xr-xr-x   1 bin      bin        27772 Jul 16  1997 /usr/xpg4/bin/df*

          Gibt also schon einige Varianten *g*

          So lange

  3. angesichts der Probleme von heute waere es fein, eine Art "Selbstblockade-Funktion" ins Forums-Script einzubauen, wenn es Probleme mit dem Plattenspeicher gibt.

    Willst Du das Problem so isoliert betrachten? Gibt es nicht noch andere Bereiche auf der Platte, deren Füllungsgrad sich ändern kann?
    Ich habe auf meinem Produktionssystem ein via "crontab" alle paar Minuten gestartetes kleines shell-skript, welches mit "df" den Füllungsgrad der relevanten Dateisysteme feststellt und beim Unterschreiten einer kritischen Grenze eine E-Mail an den Administrator des Rechners schickt ...