df parameter einzeln auslesen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von alin.r, 30.05.2006.

  1. alin.r

    alin.r Grünschnabel

    Dabei seit:
    30.05.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo,

    wahrscheinlich eine recht triviale Geschichte, für mich jedoch momentan unlösbar.
    Ich möchte in ein Shell Script den Befehlt df ausführen. Vom Ergebnis möchte ich lediglich das Device und die Belegung ausgeben.
    Also irgendwie in der art:

    $var1 = df[device]
    $var2 = df[belegung in %]

    Über eine Antwort würde ich mich sehr freuen.

    Grüße
    Alin
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hehejo

    hehejo blöder Purist

    Dabei seit:
    12.10.2003
    Beiträge:
    1.280
    Zustimmungen:
    0
    Ort:
    Stein (Mittelfranken)
    Also zuerst kannste die entsprechende Zeile mittels grep rausholen
    und dann mit cut auf die einzelnen Spalten losgehen.
     
  4. #3 Wolfgang, 30.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Schnellschuss mit perl ;)
    Code:
    df -P |perl -anle 'print "Device: $F[0]\t $F[4]" if (/^\//)'
    
    Je nach deinem System, kennt df die Option -P für überlange Zeilen.

    Natürlich geht das auch mit cat grep awk oder sed...

    Gruß Wolfgang
     
  5. #4 alin.r, 30.05.2006
    Zuletzt bearbeitet: 30.05.2006
    alin.r

    alin.r Grünschnabel

    Dabei seit:
    30.05.2006
    Beiträge:
    3
    Zustimmungen:
    0
    vielen Dank euch beiden.
    Ich habe mich für die version von Wolfgang entschieden, da ich bei der bash programmierung absoluter neuling bin.
    Ein kleines Problem noch:
    Wie kann ich die print-Anweisung durch eine variablenzuweisung ersetzen?
    Also nicht
    'print "Device: $F[0]\t $F[4]" if (/^\//)'
    sondern irgendwas in der richtung
    $var1 = $F[0]
    $var2 = $F[4]

    Ihr seht ein absoluter Neuling.
    Vielen Dank für eure Geduld
    Alin

    Nachtrag:
    das hat hier so funktioniert:
    var1=`df | perl -anle 'print "$F[4]" if(/^\^//)'`
     
  6. #5 Wolfgang, 30.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Verstehe zwar nicht ganz, was du noch mit dien Variablem machen willst?
    Du sprachst von Ausgeben, genau das macht mein Einzeiler.

    Aber wenn du es doppelt gemoppelt magst geht auch das mit o.g. Einzeiler. ;)
    Code:
    df -P |perl -anle 'print "$F[0] $F[4]" if (/^\//)'|while read VAR1 VAR2;
     do
     echo "Ich bin VAR1 $VAR1";
     echo  "Ich bin VAR2 $VAR2";
    done
    
    Sei dir aber Bewusst:
    - dass bei jeder Zeile beide Variablen neu belegt werden.
    - dass du Variablen, die du in einem Perlprozess belegst, für die Shell unsichtbar sind.

    Du kannst natürlich auch zeilenweise sed oder awk oder cut verwenden, um die ausgegebenen Werte einer Variable zu zu weisen.
    Nur jeder zusätzliche Prozess ist eine Performancebremse.
    Das spielt zwar hier weniger eine Rolle, ist aber dennoch guter Stil.
    Gruß Wolfgang
     
  7. #6 slasher, 30.05.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    er schrieb von Ausgaben und das hier:
    und über eine Antwort würde er sich freuen :).
    Für mich war das irgendwie verständlich genug *kopfkratz*.
     
  8. #7 Wolfgang, 30.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo @slasher
    Und was trägt dein Beitrag zur Klarstellung bei? *kopfkratz*.

    Mein erster Lösungsvorschlag bezog sich auf genau die vorher erstellte erste
    Frage:
    Die zweite Frage habe ich auch beantwortet.
    Du allerding nicht.

    Gruß Wolfgang
     
  9. #8 slasher, 30.05.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    ja, nichts, aber mir ist aufgefallen, dass du dich immer öfter wegen irgendeinem Krümel muckierst :). So schlimm kann dein Leben doch garnicht sein :). Ok, die Sonne scheint hier gerade nicht, aber das kommt noch.

    deine Kompetenz und die Richtigkeit deiner Antworten wurde nicht in Frage gestellt, weswegen ich mich aber umsomehr über dein Verhalten gegenüber $OP wundere :). Nicht mehr und nicht weniger.
     
  10. #9 Wolfgang, 30.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Zur letzten Klarstellung:
    Jemand fragt nach einer Lösung, wie er etwas ausgeben kann.
    Ich antworte eine Lösung.
    Die zweite Frage ergibt etwas anderes, wobei mir deshalb nicht ganz klar ist, was nun wirklich gewollt ist.
    Ich frage also rein sachlich (nicht unfreundlich) nach was nun gewollt ist, antworte aber auch darauf.

    Wo ist nun dein Problem slasher?
    Was war denn der Sinn deines Postings?

    Lehn dich mal zurück und denk in Ruhe darüber nach. ;)

    Gruß Wolfgang
     
  11. tr0nix

    tr0nix der-mit-dem-tux-tanzt

    Dabei seit:
    11.07.2003
    Beiträge:
    1.585
    Zustimmungen:
    0
    Ort:
    Schweiz, Opfikon/Glattbrugg
    Hi Alin

    Meines Wissens ist es mit Bash Bordmitteln nicht möglich, eine Zeile auseinanderzunehmen in die einzelnen Felder. Tools wie "cut" und "awk" sind da die besten Mittel hierfür.

    Gruss
    Joel
     
  12. #11 slasher, 30.05.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    @Wolfgang:
    Dich auf etwas hinzuweisen (s.o.).

    und nochmal: niemand stellt deine Kompetenz in Frage :). Wenn du dieses Gefühl haben solltest, versuche es abzustellen :).

    klingt aber unfreundlich, da du es aber anscheinend nicht unfreundlich meinst, hat sich das hier auch schon wieder erledigt.

    nein, zurücklehnen geht nicht, da man dann auf die Idee kommen könnte, dass ich nichts mache. Schreibe ich aber fleißig an diesem Keyboard, denken alle, dass ich extrem beschäftigt bin ;).
     
  13. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Das Device bekommt man mit
    Code:
    df -a | grep /dev/hdaX | awk '{print $1}'
    
    Den Prozentwert fuer die Belegung wirst du berechnen muessen, wozu du die Daten von
    Code:
    df -a | grep /dev/hdaX | awk '{print $3}' # benutzter Festplattenplatz
    
    und
    Code:
    df -a | grep /dev/hdaX | awk '{print $4}' # verfuegbarer Platz
    
    nutzen kannst. Die Befehle sollte in jedem Shell-Skript nutzbar sein. hdaX muss hier natuerlich durch das von dir gewuenschte Device ausgetauscht werden.
     
  14. #13 Wolfgang, 30.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Code:
    df -P |sed -e '1!d'|while read v1 v2 v3 v4 v5 v6; do echo -e "$v1 \t $v5"; done
    ;)
    Gruß Wolfgang
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Ah, -P war die Option fuer den Prozentwert. (Dank @Wolfgang :) ) Dann kommt man an den Prozentwert auch mit
    Code:
    df -P | grep hdaX | awk '{print $5}'
    
     
  17. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    @ slasher:

    Dein Einsatz für Forenneulinge in allen Ehren. Wenn man aber eine Aufgabenstellung bekommt, dann sich 5 Minuten hinsetzt, um eine Lösung zu finden, nur um sie anschliessend zu verwerfen, weil es doch anders gemeint war, dann kann das schon ärgerlich sein.

    Gruss, Xanti
     
Thema: df parameter einzeln auslesen
Besucher kamen mit folgenden Suchen
  1. dfxxxxxxxxxxdf

Die Seite wird geladen...

df parameter einzeln auslesen - Ähnliche Themen

  1. [gelöst] [php] für Webservice aus string einzelne funktionsparameter rausholen

    [gelöst] [php] für Webservice aus string einzelne funktionsparameter rausholen: hallo, ich habe folgendes Problem und hoffe, dass jemand da etwas hilfestellung geben kann. ich habe einen string, der hat die form...
  2. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  3. Parameternutzung in Funktionen

    Parameternutzung in Funktionen: Hallo, vielleicht hat jemand eine Idee. Es sollen UNIX-Kommandos aus einer Funktion heraus aufgerufen werden, die Optionen werden mit...
  4. UseFBDev-parameter bei der xorg.conf

    UseFBDev-parameter bei der xorg.conf: hallo zusammen ich frage mich gerade, was der parameter "UseFBDev" genau bedeutet? tönt irgendwie selbsterklärend, ist es aber scheinbar nicht......
  5. Nach Variable fragen wenn die nicht als Parameter eingegeben wurde

    Nach Variable fragen wenn die nicht als Parameter eingegeben wurde: Hallo, wie man aus dem Titel entnehmen kann, möchte ich dass man nach Argument gefragt wird, wenn man keinen eingetippt hat. zB ----------...