Hallihallo
Ich würde gerne mit Perl unter Linux (Knoppix) den Speicherplatz einer Festplatte auslesen, d.h. die Gesamtgrösse der HD oder der freie Speicherplatz. Hat da jemand eine Idee, wie man das machen könnte? Mit stat... kann man leider nur die Grösse von Verzeichnissen und Dateien, aber nicht von HD's abrufen.
Merci schon im voraus für eure Tipps!
rs204
User since
2003-08-04
5872
Artikel
ModeratorIn
df zeigt Dir (u. a. freien) den freien Speicher auf allen Partitionen an.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-08-11
457
Artikel
BenutzerIn
Wenn du die Informationen nicht selbst aus der Ausgabe von df filtern willst, kannst du Filesys::DiskFree nehmen, das macht es leichter.
Gruss Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
User since
2003-09-03
80
Artikel
BenutzerIn
Hi,
ich stimme Crian zu, ein df Command könnte weiterhelfen, es gibt dor ein Schalter -k, glaub ich ?????????? Die Man Pages sind da echt hilfreich, hatte solche Probs unter W2K, da kann dir das Modul, Win32::Driveinfo helfen, vielleicht gibt es sowas auch für Linux?
Cuu
User since
2004-02-22
4
Artikel
BenutzerIn
Danke für den prompten Feedback. Den df-Befehl habe ich auch schon entdeckt, nur ist mein Problem, dass ich den Rückgabewert nicht in eine Perl-Variable kriege. Naja, ich bin halt noch ein Anfänger :( . Könnte mir da jemand ein Beispiel machen, wie so ein Code aussehen könnte? Ich habe schon mit system und syscall herumprobiert, aber leider keine Lösung gefunden. Ich möchte ausserdem ohne zusätzliche Perl-Module auskommen, das sollte ja irgendwie möglich sein. Danke für eure Mühe.
Gruss
rs204
User since
2004-02-22
4
Artikel
BenutzerIn
Aha, so simpel hätte ich es mir nicht vorgestellt. Gewusst wie!! ;-) Danke schön, da hab ich wieder was dazugelernt. Jetzt muss ich mir nur noch den richtigen Wert aus dem String holen, aber das werde ich hoffentlich irgendwie fertigbringen...
User since
2003-08-08
2561
Artikel
HausmeisterIn
Wieso verwendest du denn nicht das von coax genannte Modul? Einfach kann es doch gar nicht mehr gehen.
Ein Beispiel:
use Filesys::DiskFree;
use strict;
my $disk = new Filesys::DiskFree;
$disk->df();
print "Es sind noch ".$disk->avail("/"). " Bytes frei.";
Finde das Modul klasse. Du kannst den kompletten Speicher herausfinden und sogar das Verzeichnis ("/") angeben. Was will man mehr?
Gruß, Erik!
s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}
It's not a bug, it's a feature! - [CGI-World.de]
User since
2004-02-22
4
Artikel
BenutzerIn
Das ist eine berechtigte Frage, wieso ich kein zusätzliches Modul verwenden will. Ich benötige den Code für ein Backup-Script, das unter Knoppix läuft, welches ab CD gebootet wird. Die Vorgabe ist also, wenn irgendwie möglich ohne Zusatz-Module auszukommen...
User since
2003-11-28
3645
Artikel
ModeratorIn
[quote=rs204,24.Feb..2004, 02:31]Das ist eine berechtigte Frage, wieso ich kein zusätzliches Modul verwenden will. Ich benötige den Code für ein Backup-Script, das unter Knoppix läuft, welches ab CD gebootet wird. Die Vorgabe ist also, wenn irgendwie möglich ohne Zusatz-Module auszukommen...[/quote]
Leute: wenn es sich um ein Pure-Perl-Modul handelt und es keine weiteren Abhaengigkeiten gibt (kann man leicht durch Betrachten von PREREQ_PM im Makefile.PL des Moduls sehen), nimmt man einfach den entsprechen Modulcode, entfernt vielleicht noch das Pod und packt ihn unter Verwendung von { ... } an den Anfang des eigenen Skriptes.
Wenn dir noch zu viel Ballast FileSys::DiskFree ist (z.B. brauchst du die Unterstuetzung fuer Nicht-Linux-Betriebssysteme nicht), kannst du diese einfach entfernen.