Freier Speicher als Rückgabewert

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von SoulOfDarkness, 28.02.2007.

  1. #1 SoulOfDarkness, 28.02.2007
    Zuletzt bearbeitet: 28.02.2007
    SoulOfDarkness

    SoulOfDarkness Jungspund

    Dabei seit:
    22.02.2007
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo,

    Linux: CT-Debian-Server
    Shell: Bash

    im Geschäft, habe ich den Auftrag bekommen ein Sicherungsskript zu schreiben, dass Daten auf anderen Rechnern speichert oder auf CD brennt. Dazu zwei Fragen:

    1. Teil des Skriptes ist es, dass ich die Medien auf noch verbleibenden Speicher abfrage. Gefunden habe ich dazu den "df" Befehl welcher mir die Infos bringt die ich brauche, aber wie kann ich die jetzt in einem String so speichern, dass ich ihn abgleichen kann mit Vorgabewerten, um ein Warning auszugeben, wenn der freie Speicher langsam zu gering wird?

    2. Soll das Skript einen CD/DVD Brenner ansteuern und das Backup auf diese brennen, wie kann man das in Befehlen umsetzen?

    Gruß Soul


    PS: Wäre super nett, wenn ihr die Antworten auch kurz erläutern könntet, da ich erst seit ein paar Tagen mit Shell arbeite und mich wegen der Aufgabe damit einarbeiten muss.
     
  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. #2 supersucker, 28.02.2007
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
    Naja,

    ich würde dafür Perl nehmen und nicht die Bash, aber sei es drum.

    zu 1)

    Code:
    df_output=`df`
    Dies führt den Befehl df aus (beachte die Backticks `` zur Befehlsausführung) und speichert die Ausgabe von df in df_output.

    zu 2)

    Schau dir mal cdrecord an, das kannst du über die Bash zum Brennen nutzen, bzw. siehe

    Code:
    man cdrecord
    (muss natürlich installiert sein, wenn nicht findest du die manpage auch im Netz)
     
  4. #3 SoulOfDarkness, 28.02.2007
    Zuletzt bearbeitet: 28.02.2007
    SoulOfDarkness

    SoulOfDarkness Jungspund

    Dabei seit:
    22.02.2007
    Beiträge:
    15
    Zustimmungen:
    0
    Vielen Dank erstmal,
    aber das mit dem df hatte ich schon raus, mein Problem ist, wie ich den Ausgabewert von df noch filtern kann...

    Beispielweise:
    Code:
    FreierSpeicher=`df | grep hda1`
    FreierSpeicher={FreierSpeicher#*hda1}
    Dann habe ich die Zeile, aber diese nun so zerlegen, dass nur noch der freie Speicher in der Variable steht.

    Nun kann ich die Variable ja auch so berarbeiten, dass ich Werte ausschneide:
    Code:
    FreierSpeicher=${FreierSpeicher##*hda1}
    Aber das hilft hier nicht sehr weiter, da ich eine Menge Zahlen in der Zeile stehen habe.


    Gruß Soul

    PS: Bash war die Vorgabe der Aufgabe
     
  5. #4 Wolfgang, 28.02.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Zu deiner Brennerei, findest du zahlreiche Hinweise.
    Einen z.B. hier

    Was den Speichplatz auf den medien betrifft, kannst du die Ausgabe von df in eine Pipe leiten, und das gesuchte Feld herausschneiden.

    Das ist nur ein Beispiel von vielen.

    df -P sollte klar sein. -P nur um Zeilenumbrüche zu vermeiden.
    sed -e '1d ' schneidet die erste zeile weg (Kopf)
    while read liest alles in die Variablen ein
    if [ ${PE/\%/} -gt $W ] Vergleicht das Prozentfeld mit Warnwert W. Vorher ersetze ich das % durch Nichts, um eine Zahl zu bekommen.
    siehe (Veriablenexpansion der Bash)


    Der Rest sollte klar sein.


    Wenn du nur bestimmt Partitionen brauchst, kannst du ein grep vor das while read setzen.
    Gruß Wolfgang
     
  6. #5 whopper, 28.02.2007
    whopper

    whopper Foren As

    Dabei seit:
    01.10.2006
    Beiträge:
    96
    Zustimmungen:
    0
    df | awk '/hda1/ {print $4}'

    So vielleicht
     
  7. #6 SoulOfDarkness, 28.02.2007
    SoulOfDarkness

    SoulOfDarkness Jungspund

    Dabei seit:
    22.02.2007
    Beiträge:
    15
    Zustimmungen:
    0
    Vielen Dank, auch euch beiden, ich werde eure Lösungsmöglichkeiten mal aufgreifen und ausprobieren. Bisher habe ich es mal so übernommen:

    Code:
    # Auszug aus TEMPCONF: [I]Warnlimit:90[/I]
    while read line ; do Warnlimit=`grep "Warnlimit:"` done < $TEMPCONF;
    #
    WARNLIMIT = ${WARNLIMIT##*:}
    #
    df -P|sed -e '1d'|while read D S U A PE P;do 
                              if [ ${PE/\%/} -gt $WARNLIMIT ]; 
                                then echo "PART $D fast voll: ${PE} Prozent benutzt." >> $LOG;
                              fi;
                      done
    
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 x-lette, 01.03.2007
    x-lette

    x-lette Mitglied

    Dabei seit:
    23.04.2006
    Beiträge:
    44
    Zustimmungen:
    0
    Ort:
    Berlin
    Hallo,

    zum brennen ist cdrecord nur für CDs geeignet. Für DVDs gab es mal cdrecord-ProDVD, dessen Funktionalität inzwischen in wodim bzw. cdrkit übernommen wurde. Zusätzlich gibt es noch dvdrecord (dvdrtools) und die dvd+rw-tools.
    Außerdem gibt es eine ganze Reihe an skriptfähigen Backuplösungen, die auch CD/DVD unterstützen.

    Gruß
    XL
     
  10. #8 SoulOfDarkness, 01.03.2007
    SoulOfDarkness

    SoulOfDarkness Jungspund

    Dabei seit:
    22.02.2007
    Beiträge:
    15
    Zustimmungen:
    0
    Vielen Dank, ich die Programme werde ich wohl nehmen, wenn es so klappt wie es soll. Muss nur noch die Infrastruktur für die Tests her. :)

    Gruß Soul
     
Thema: Freier Speicher als Rückgabewert
Besucher kamen mit folgenden Suchen
  1. python speicher freie größe ausgeben

    ,
  2. python ordner freien speicherplatz ermitteln

    ,
  3. linux speicherverbrauch verzeichnis bash php

Die Seite wird geladen...

Freier Speicher als Rückgabewert - Ähnliche Themen

  1. Eu-Richtlinie für Funknetzsicherheit könnte freier Software schaden

    Eu-Richtlinie für Funknetzsicherheit könnte freier Software schaden: 23 Organisationen, darunter die Free Software Foundation Europe (FSFE), haben sich zusammengeschlossen, um die von der Europäischen Union bereits...
  2. Spiele-Engine Atomic unter freier Lizenz veröffentlicht

    Spiele-Engine Atomic unter freier Lizenz veröffentlicht: Die Firma Thunderbeast Games hat ihre Spiele-Engine Atomic unter der MIT-Lizenz veröffentlicht. Atomic läuft unter Linux, Android, Windows, Mac OS...
  3. Französische Nationalversammlung ermutigt zu freier Software

    Französische Nationalversammlung ermutigt zu freier Software: Das französische Parlament diskutierte im Januar den Gesetzentwurf »Digital Republic«, der Ende 2014 von Axelle Lemaire, Ministerin für digitale...
  4. NayuOS - freier Fork von Chromium OS vorgestellt

    NayuOS - freier Fork von Chromium OS vorgestellt: NayuOS ist ein neues Open-Source-Betriebssystem für Chromebooks, das ohne Kontakt zu Google auskommt und sich speziell an Entwickler wendet....
  5. Frankreich erneuert seine Referenzliste zu freier Software

    Frankreich erneuert seine Referenzliste zu freier Software: Frankreich hat die Ausgabe für 2016 von SILL, der Referenzliste zu freier Software zur Verwendung in französischen Amtsstuben herausgegeben....