Wie kann ich den freien Speicherplatz auf aktivierten Volumes mit Perl finden?
Frage
Ich versuche, eine Datei zu entpacken. Bevor entpacken würde ich freien Speicherplatz wissen, auf dem eingehängten Volumen. Der Plan ist, wenn es nicht genug Platz ist, werde ich es nicht entpacken! Also, wie kann ich den freien Speicherplatz auf einem montierten Volumen zur Verfügung finden Perl? By the way, ich bin mit Perl für Teer und entpacken.
Jeder sagt über df
und dh
aber diese Befehle auf den Mount-Punkte nicht funktioniert. Was passiert, wenn ich den freien Platz finden will, dass ich an einem Punkt angebracht schreibe in kann?
Lösung
Verwendung von Shell-Befehlen eine einzelne K freier Nummer zu erzeugen, die Perl verwenden:
Wechseln Sie in das Verzeichnis, in dem Sie (falls nicht bereits vorhanden) und führt entpacken wollen:
df . | grep -v '^Filesystem' | awk 'NF=6{print $4}NF==5{print $3}{}'
oder ersetzen "" mit dem eigentlichen Mount-Punkt.
wird der grep des Headers zu befreien und die awk druckt die Kilobyte verfügbar sowohl für die Spaltung und nicht-Split-Linien.
Dies ist auf der folgenden Art von Ausgang basiert, müssen Sie unter Umständen anpassen, wenn Ihr UNIX gibt etwas anderes:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda4 206434224 56965356 139065176 30% / varrun 1037296 132 1037164 1% /var/run varlock 1037296 0 1037296 0% /var/lock udev 1037296 68 1037228 1% /dev devshm 1037296 12 1037284 1% /dev/shm /dev/sda2 93327 43535 44973 50% /boot /dev/sdc1 155056484 29417456 117824612 20% /media/extra160 gvfs-fuse-daemon 206434224 56965356 139065176 30% /home/pax/.gvfs
Andere Tipps
Sie wahrscheinlich das CPAN wollen Modul Filesys :: DfPortable .
Sie können nur eingebaute in Linux-Befehle verwenden, um das Ergebnis zu erhalten:
my $vol = "/dev/volume";
my $freespace = `df $vol | grep '$vol' | awk '{print \$4}'`;
# free space in megabytes.
$freespace = sprintf("%01.2f", $freespace / 1024);
Versuchen Sie Filesys :: DF (Posix-System) oder Filesys :: DfPortable (Windows auch). Beide benutzen nativen Code zu FS Statistiken aufgelistet werden.