.titleBar { margin-bottom: 5px!important; }

Falsche Werte von Größe "Eingehängte Partitionen"

Dieses Thema im Forum "Freetz" wurde erstellt von ipsurfer, 2 Feb. 2009.

  1. ipsurfer

    ipsurfer Neuer User

    Registriert seit:
    16 Jan. 2009
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo.

    Danke für die wundervolle Software "FREETZ" !

    Nach langem Suchen endlich gefunden.
    Die richtigen und zielführenden Informationen mit denen es mir als Mod-Anfänger gelungen ist freetz1.01 auf meine Fritzbox 7050 zu installieren.

    Für den Anfang ist dort nur ein Paket (cifsmount) eingesetzt. Als Gegenstelle (zum Mounten) habe ich eine LinkstationPro-250 (Festplattentausch->1000GB) mit Orginalfirmware.

    Diese Zusammenstellung läuft jetzt ohne Probleme.
    Zusätzlich ist das Tool "Fritz!Load" auf dem NAS funktionsfähig ausgelagert .


    Bis jetzt konnte ich nur einen Fehler erkennen den ich hier melden möchte.

    Auf der Freetz-Statusseite
    Angezeigte Daten:
    /var/tmp/usb (930.6G):
    732.2 GB von 198.4 GB belegt

    Was so ja nicht ganz stimmen kann.

    Angehängt ein Print
     

    Anhänge:

  2. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,743
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Die größe wird schon so stimmen. Was nur nicht so ganz passt ist die fehlende Prozentabgabe
     
  3. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Kannst du mal bitte die Ausgabe des Befehls "mount" posten?

    MfG Oliver
     
  4. ipsurfer

    ipsurfer Neuer User

    Registriert seit:
    16 Jan. 2009
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Oliver,

    Ausgabe von mount ist :


    /var/modroot# mount
    rootfs on / type rootfs (rw)
    /dev/root on / type squashfs (ro)
    dev on /dev type tmpfs (rw,nosuid)
    proc on /proc type proc (rw,nodiratime,nosuid,nodev,noexec)
    tmpfs on /var type tmpfs (rw)
    sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
    //192.168.1.50/fritzbox7050 on /var/tmp/usb type cifs (rw,mand,nodiratime,unc=\\
    192.168.1.50\fritzbox7050,username=ich,rsize=16384,wsize=57344)


    Grüße
     
  5. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Und bitte noch die Ausgabe von "df".

    MfG Oliver
     
  6. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    ist bestimmt ein "jahr2009"-Problem, sehe ich schon... ;)
     
  7. ipsurfer

    ipsurfer Neuer User

    Registriert seit:
    16 Jan. 2009
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #7 ipsurfer, 2 Feb. 2009
    Zuletzt bearbeitet: 2 Feb. 2009
    Hallo Oliver,

    df-Ausgabe

    /var/mod/root # df
    Filesystem 1k-blocks Used Available Use% Mounted on
    rootfs 3136 3136 0 100% /
    /dev/root 3136 3136 0 100% /
    //192.168.1.50/fritzbox7050
    975805792 208006652 767799140 21% /var/tmp/usb

    Grüße

    Edit:
    Werte entsprechen den Angezeigten: nur ist die Reihenfolge vertauscht !
    Prozentwert fehlt und die Einheit für Gesamtbereicht sollte wohl GB lauten !
     
  8. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    kann sein, dass sed mit "//" ein Problem hat? Die df-Ausgabe wird doch bestimmt durch sed durchgejagt, bevor es auf webif kommt. Ich kenne die Problematik zufällig. Da muss man echt mit sed aufpassen. Am besten, man erklärt von Anfang an einen anderen Trenner, als /. Aber ob das alleine hilft.

    @ipsurfer: Verpasse bitte deine Ausgaben in code-tags. Glaub mir, das erleichtert nicht nur das Lesen, sondern gibt für den Entwickler zusätzliche Anhaltspunkte, wo welches Symbol zu finden ist. Sonst verschwinden alle Leerzeichen und Tabulatoren mit einer nicht-monospace-fähiger Schriftart.

    MfG
     
  9. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Warum sollte es ein Problem mit "//" geben?
    Ich vermute eher, wenn der Zeilenumbruch oben tatsächlich aus der Ausgabe von df stammt und nicht versehentlich eingefügt wurde, dann ist das das Problem:
    Code:
    //192.168.1.50/fritzbox7050
    975805792 208006652 767799140 21% /var/tmp/usb
    
    Damit ist "975805792" der Mount-Punkt, "208006652" der gesamte Platz, "767799140" der belegte, "21%" der freie und "/var/tmp/usb" die Prozent-Angabe. Das stimmt auch mit dem Bild aus dem ersten Beitrag überein.
     
  10. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Wenn man "/" nicht explizit als Trenner definiert, sed Ausgabe (oder eine andere) in eine SHELL-Variable schreibt, dann diesen Ausdruck als Suchfunktion in sed benutzt, dann kann es zu solchen Problemen kommen. Ich hatte es erlebt. Mag sein, dass ich ein schlechter sed-Skripter bin, aber wie gesagt, da muss man in sed mit Sonderzeichen echt aufpassen.

    Ich kann es mir kaum glauben, dass dort enter eigeführt ist. Deswegen hab ich um code-tags gebeten, Ralf. War schon Absicht. Aber code-Tags bringen uns auch wenig.

    @ipsurfer:

    mach bitte
    Code:
    df > /var/tmp/df_ausgabe.txt
    
    und poste uns diese Datei hier, ohne sie zu editieren, so wie sie ist. Alternativ kannst du sie selbst mit einem hex-editor anschauen, z.B. unter mc->F3->F4

    Edit: noch besser, wir sind doch bei Linux:

    Code:
    df | hexdump -C > /var/tmp/df_ausgabe.txt
    
    Dann sehen wir es gleich in HEX.

    MfG
     
  11. ipsurfer

    ipsurfer Neuer User

    Registriert seit:
    16 Jan. 2009
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,
    zur Analyse die gewünschten Dateien.



    Zusätzlich ein df-Aufruf von meinem Desktop-Linux auf dem auch der NAS gemountet ist.

    Code:
    Dateisystem          1K‐Blöcke   Benutzt Verfügbar Ben% Eingehängt auf
    /dev/sda1             96124904   6780888  84461064   8% /
    tmpfs                  1038028         8   1038020   1% /lib/init/rw
    udev                     10240       124     10116   2% /dev
    tmpfs                  1038028         0   1038028   0% /dev/shm
    /dev/sda6            192243928  54612924 127865496  30% /home
    /dev/sda7            324061944 192199664 115400880  63% /pool
    //LS-GL159/share     975805792 208006660 767799132  22% /home/jo/smb4k/LS-GL159/share
    //LS-GL159/fritzbox7050
                         975805792 208006660 767799132  22% /home/jo/smb4k/LS-GL159/fritzbox7050
    

    Meine Sicht der Werte:
    975805792 -> 975805792/1024/1024 = 930,6 GB
    208006660 -> 208006660/1024/1024 = 198,37 GB
    767799132 -> 767799132/1024/1024 = 732,23 GB


    Information der Statusseite meines NAS
    Code:
    Festplattenauslastung
    Datenträger 1
    198.4 GB / 930.6 GB (21.3 %)

    Diese sind fast identisch mit dem df-Datenauszug der FB
    und auch der Anzeige im Freetzstatus:
    Gesamt: 930GB
    Belegt: 198GB
    Frei: 732GB

    nur in einer falschen Zusammenstellung/Anordnung !!!


    Grüße
     

    Anhänge:

  12. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wie ich vermutet hatte: df macht einen Zeilenumbruch nach dem Namen des Gerätes, wenn er zu lang ist, weil sonst die Tabelle verschoben wäre. Die automatische Verarbeitung der Ausgabe ist dadurch aber erst recht durcheinander gekommen.
     
  13. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    #13 hermann72pb, 3 Feb. 2009
    Zuletzt bearbeitet: 4 Feb. 2009
    Das ist ja richtig ein Rätsel, wie man es umgehen könnte. Mir fällt spontan keine 100% Lösung ein, die man so einfach mit sed/awk/grep realisieren könnte...

    Obwohl, wenn man vielleicht die Anzahl der Leerzeichen/Tabulatoren zählt. Das doofe dabei ist, dass 0x0a bei allen den Programmen eindeutig als Zeilenumruch gilt und das ist ein sehr harter Trenner. In sed muss man z.B. viel tricksen, um über Zeilenumruch weg durchzuscannen.

    Hier gilt es diesen "falschen" Zeilenumruch zu identifizieren und zu löschen. Im Endeffekt wird es sicherlich eine kleine sed-Passage sein, die man der eigentlichen Suchfunktion vorschaltet. Ich überlege da was, vielleicht werden wir fündig.

    Schade nur, dass df keine Option hat, diese "freundliche" Unterstützung abzustellen.


    Edit: Hier ist die sed-Lösung, die irgendwo eingepflegt werden sollte:

    Code:
    sed -n ':a;$!N;$!ba;s/\n  */ /g;p'
    
    Frag mich bitte nicht wegen Schleife, die hab ich mir auch nur in einem sed-Tutorial abgeschaut und für die belange hier passend erweitert. Achtung: Vor dem Sternchen sind zwei Leerzeichen, obwohl man es evtl. nicht sieht.

    So würde es dann aussehen und sollte von dem nachfolgenden Skript nun korrekt bearbeitet werden:

    Code:
    /var/media/ftp/uStor01/test # cat ./df_ausgabe.txt | sed -n ':a;$!N;$!ba;s/\n  */ /g;p'
    Filesystem           1k-blocks      Used Available Use% Mounted on
    rootfs                    3136      3136         0 100% /
    /dev/root                 3136      3136         0 100% /
    //192.168.1.50/fritzbox7050 975805792 208006656 767799136  21% /var/tmp/usb
    /var/media/ftp/uStor01/test #
    
    Jetzt fehlt uns nur die Stelle, wo man es einpflegt...

    Edit2:

    Die Datei heißt

    root/usr/lib/cgi-bin/mod/mounted.cgi

    Zeile 12:

    Code:
    ---                dfrow=$(df -h|grep " $path$")
    +++                dfrow=$(df -h|sed -n ':a;$!N;$!ba;s/\n  */ /g;p'|grep " $path$")
    
    bitte ausprobieren. Sollte theoretisch gehen.

    @Entwickler: Ich weiß von euch werden nur ordentliche diffs angenommen, will aber nicht jetzt wegen einer Zeile so viel Umstand machen.

    MfG
     
  14. ipsurfer

    ipsurfer Neuer User

    Registriert seit:
    16 Jan. 2009
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,
    wie bekomme ich denn so eine abgewandeltet Datei in das Ziel-Verzeichnis ? (Im tmp liegt sie schon)
    Würde ganz gerne testen !

    Mit rudishell und cat nicht möglich. Per telnet und copy meldet er Readonly Filesystem.


    Nur mit neuflashen ?

    Grüße
     
  15. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
    Benutz mal die Suche. Es geht mit "mount -o bind ...".

    MfG Oliver
     
  16. ipsurfer

    ipsurfer Neuer User

    Registriert seit:
    16 Jan. 2009
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Die Änderung im CGI-Script sind erfogreich. :D


    Als Beleg zwei Anlagen, die das deutlich zeigen.
    (Zweite auch mit verkürztem Mount-String - ohne Zeilenumbruch)

    Danke für die Hilfe


    Nur so nebenbei, ab wann wird die Änderung eingearbeitet sein und per Installation zur Verfügung stehen ?
    Wo könnte ich den Vorgang/Fortgang nachlesen ?
     

    Anhänge:

  17. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,743
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Auf www.freetz.org.

    @hermann72pb: Kannst du mir das sed mal erklären?
     
  18. ipsurfer

    ipsurfer Neuer User

    Registriert seit:
    16 Jan. 2009
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Auf Freetz.org ?!

    Dies war mir eigentlich auch schon klar.

    Nur in welchem Untermenue ?

    Zeitachse ?
    Ticket-System ? ->


    Grüße
     
  19. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,743
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Bis jetzt hat doch niemand ein Ticket angelegt, da wird man dann wohl nichts finden können. Probier mal die "Zeitlinie"
     
  20. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,564
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    @cuma: ich erlaube es mir nochmal zu zitieren, damit du nicht viel scrollen muss
    Code:
    sed -n ':a;$!N;$!ba;s/\n  */ /g;p'
    
    Wie ich oben schon angedeutet habe, hatte ich diese Passage aus irgendeinem sed-Tutorial "abgeschaut".

    Ich versuche es zu erklären, so wie ich es verstehe.

    -n heißt, dass die Ausgabe abgeschaltet wird. Für diesen Fall ist -n erforderlich. Um die Ausgabe jedoch am Ende zu erzwingen, braucht man dann aber p. Ich denke solche Trivialitäten kennst du bereits, sonst lese irgendein Tutorial für sed und mache Paar Übungen auf Freetz direkt oder auf einem anderen Linux. busybox-sed ist aber etwas eigenartig. Nun weiter zum Einzeiler:
    $!N sucht bis zum Ende der Zeile und addiert die nächste Zeile
    $!ba geht zum Marker ":a" solange bis EOF erreicht ist (also, Schleife)
    Danach hat man im Puffer den kompletten String inklusive Zeilenumbruche.
    s/\n */ /g sucht global nach Zeilenumbrüchen mit darauf folgenden Leerzeichen und ersetzt es mit einem einfachen Leerzeichen ohne Zeilenschub. Wobei es mindestens 1 Leerzeichen nach dem Umbruch vorkommen müsste. Sowas kommt nur bei "künstlichen" Umbrüchen. Dies war meine Beobachtung und eigentliche Erweiterung.

    Zur Geschichte: Ich hatte es bei meinem betamax.sh gebraucht (kannst du hier danach suchen, hab ich irgendwo gepostet gehabt). Dort ging es darum eine html-Seite zu parsen. Meine Vorgänger haben nach bestimmten html-Muster gesucht, was voll in die Hose ging, wenn der Provider die html-Seite umgeändert hat. Ich bin dabei etwas anders vorgegangen und habe zunächst alle html-Tags samt java-Script gelöscht. Danach lässt sich die html-Seite besser durchsuchen.
    Das klingt hier zwar so trivial und einfach, hat mir aber mehrere Tage sed-Übung/Suche gekostet. Bei meiner "Übung" habe ich relativ früh erfahren, dass alle Stringsucher eigentlich zeilenweise und dann noch innerhalb einer Zeile suchen. Um dies zu unterbinden muss man in sed spezielle Schleifen bauen, die trotz Zeilenumbrüche weitersuchen und weitere Zeilen anhängen. Dies war für html und javascript ganz wichtig, weil dort die Zeilenenden so gut wie nichts heißen. So bin ich irgendwo auf diesen Einzeiler gestoßen.

    @ipsurfer: Mach mal bitte unter freetz ein Ticket auf und verweise dort auf diesen Thread. Ich poste dort dann die Lösung und irgendjemand pflegt es ein. Es ist ganz gut, dass du es getestet hast!

    Es wird aber zunächst wohl wahrscheinlich in die Entwicklerversion einfließen und wenn keiner meckert irgendwann mal in stable.