Speicherplatz abfrage

N

noob222

Mitglied
Hallo,

mit welchem Befehl kann ich den verfügbaren Speicherplatz ausgeben??

habe z.B.
Code:
Filesystem             size     used    avail   capacity  Mounted on 
/dev                    400 G    300 G  100 G      80%      /test

und möchte mit einem Befehl erfahren wie viel Speicher ich noch zur Verfügung habe (hier in diesem Fall 100 G )

möchte in meinem Script eine Abfrage machen, das wenn in dem Verzeichnis /test weniger als 100 G ist, das mein Script nciht ausgeführt werden soll.

also nach dem Motto:
Code:
minimum_df = 50 G
verfuegbar_df = 'df | grep /dev ..........'

if[ $verfuegbar_df > $minimum_df]
then   
       mkdir test
else 
     echo "zu wenig Speicher" 
fi

die Frage ist halt wie ich bei verfuegbar_df den verfügbaren Speicherplatz abfragen kann

mfg

danke


Sorry: Es ist eine Solaris Maschine
 
Zuletzt bearbeitet:
Ist es nicht immer sinnvoll, auch das Betriebssystem mit anzugeben?
 
habe jetzt mal folgendes gefunden und in mein script reingeschrieben aber ich weiss nicht ob es das richtige ist

Code:
#! /bin/sh
# Speicherabfrage testen ob noch genuegend Speicher zur Verfuegung steht
# falls ja, dann erstelle Ordner, falls nein -> Fehlermeldung

LOG_SCRIPT=speichertest

minimumdf=71267384
verfuegbardf='df | grep /test | cut -d '' -f 21'

echo "Speicherabfrage: $verfuegbardf" >> $LOG_SCRIPT
if [ $verfuegbardf > $minimumdf ]
then
      mkdir test
echo "genuegend Speicherplatz verfuegbar" >> $LOG_SCRIPT
else
echo "Speicherplatz zu wenig" >> $LOG_SCRIPT
fi
echo "ENDE"

jetzt weiss ich nicht ob
Code:
 verfuegbardf='df | grep /test | cut -d '' -f 21'
mit den "avail" Speicherplatz angibt, weil ich mein scirpt nicht zum laufen bringen kann, weil ich folgende Fehlermeldung bekomme : "unknown operator | "

warum erkennt er diesen Operator nicht? Ich benutez den vi-Editor.
 
Zuletzt bearbeitet:
Ich kenne Solaris nicht so gut, aber falls Solaris' df es unterstuetzt, kannst Du auch
Code:
df /test |  awk '{print $6}'
benutzen, vielleicht hilft das gegen die Fehlermeldung.

Wenn Du nicht weisst, wo das Skript den Fehler erzeugt, dann baue doch einfach mal ein paar 'echo "Bis hierher klappt's" in das Skript ein, um zu sehen, wo es stockt.
 
Ich denke dein Problem liegt da:
Code:
verfuegbardf='df | grep /test | cut -d '' -f 21'
Du meinst wohl Backticks und nicht Hochkomma, so:
Code:
verfuegbardf=`df | grep /test | cut -d '' -f 21`
oder noch besser:
Code:
verfuegbardf=$(df | grep /test | cut -d '' -f 21)

Unter Solaris9 klappt das wunderbar:
Code:
df -h | grep /test | awk '{print($4)}'
Gruss
d22
 
Hallo
Deshalb sollte man die eigentlich dort erwarteten Backticks nicht mehr verwenden.
Code:
verfuegbardf=$(df | grep /test | cut -d '' -f 21);
#wahrscheinlich stand in deiner Vorlage:
verfuegbardf=`df | grep /test | cut -d '' -f 21`

Kann mich dunkel erinnern, dass genau dieses Thema vor ein paar Wochen schoneinmal vorkam.
Musst du mal iim Forum Shell suchen.

Gruß Wolfgang

OK nun haben wir ein doppelt beantwortetes Posting.
War halt etwas zu langsam.
 
cut 'schneidet' Zeilen auseinander. Und verwendet dazu den Delimiter (-d) den du angibst und gibt das Feld (-f) zurück das du willst.
Beispiel:
Code:
# cat file.txt 
abc#ddd#hugo#bla#123
# cut -d# -f3 file.txt 
hugo
man cut
Gruss
d22
 
danke,jetzt wird es mir auch klar.

deswegen hast du auch
Code:
awk '{print($4)}'
benutzt weil avail an der 4. position ist.


danke
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

ich hätte da eine letzte bitte:

wie kann ich einer Variable eine feste Größe in GB (gygabyte) zuweisen:

also z.B. minimumdf=50 GB!!!!!!!
 
Zuletzt bearbeitet:
Du musst schon wissen, dass die Groesse, die Du der Variable zuweist, in GB gemessen wird und dementsprechend damit umgehen.
 

Ähnliche Themen

Neue Partition unter openSUSE 12.2 erstellen

X not starting anymore since filesystem was full

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Löschroutine mit Überprüfung

Afänger braucht Hilfe - /temp ist voll, kde geht nicht, wie weiter ??

Zurück
Oben