verfuegbaren Plattenspeicher abfragen
Stefan Muenz
- perl
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
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.
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
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
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 Muenzhey stefan ;)
findest du sofort, indem du "which df" eingibst, das spuckt den pfad aus...
cu
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
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: " . $_;
}
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!
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
Warum so viel Aufhebens? Auswerten kann man doch selber, so nimmt man sich doch nur selbst evtl. interessante Informationen weg. Also einfach
df;
oderdf -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 ...
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
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 ...