Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : freier speicher auf device



ComSubVie
22-09-2002, 19:28
Hallo!

Wie kann ich mit einem bashscript oder einem perlscript (ist egal, sowohl dies als das kann mails schicken) den freien speicher auf einem device bestimmen?

ich wollte es mit
$freespace = `df | grep /dev/hda1`;
@free = split( / /, $freespace );

und dann auf $free[x] zugreifen, aber irgendwie funzt das ned....

das ziel ist es, eine warnung per mail zu schicken, wenn auf <parameter> weniger platz als <parameter> frei ist...

anda_skoa
22-09-2002, 19:42
FREE=$(df | grep /dev/hda1 | awk '{ print $4; }')

Ciao,
_

anda_skoa
22-09-2002, 19:44
oder als script

#!/bin/bash
FREE=$(df | grep $1 | awk '{ print $4; }')
if [ $FREE -le $2 ]; then
echo Warnung
fi

Ciao,
_

ComSubVie
22-09-2002, 19:49
danke! ich hab irgendwie nur an sed gedacht, nie an awk ;)

Sion
22-09-2002, 19:51
the perl'ish way

$dfout = `df | grep /dev/hda5`;
(undef, undef, undef, $free) = split(/ +/ , $dfout);
print "free=\"$free\"\n";

split gibt ein array zurück, du willst das 4. Element davon

Hans-Georg Normann
22-09-2002, 22:20
Schon mal cat /etc/partitions gemacht? Steht da in der Richtung nicht auch irgendwie der belegte Platz?

Hans

fork
23-09-2002, 16:23
@Hans-Georg Normann

tobias@ax301:~> cat /etc/SuSE-release
SuSE Linux 7.3 (i386)
VERSION = 7.3

tobias@ax301:~> cat /etc/partitions
cat: /etc/partitions: Datei oder Verzeichnis nicht gefunden

???

Tobias
23-09-2002, 16:47
@fork

vieleicht: cat /proc/partitions
major minor #blocks name
22 0 29316672 ide/host0/bus1/target0/lun0/disc
22 1 97744 ide/host0/bus1/target0/lun0/part1
22 2 97776 ide/host0/bus1/target0/lun0/part2
...

Gibt aber nicht den belegten Platz

fork
24-09-2002, 19:16
> vieleicht: cat /proc/partitions

Daran hab' ich natürlich auch gleich gedacht, aber zur Zeit meines letzten Postings war diese Datei auch noch nicht da. Oder war ich nur zu blöd zum Tippen? Whatever, it works!