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

ipsurfer

Neuer User
Mitglied seit
16 Jan 2009
Beiträge
20
Punkte für Reaktionen
0
Punkte
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

  • Freetz-Status.jpg
    Freetz-Status.jpg
    91.9 KB · Aufrufe: 24
Die größe wird schon so stimmen. Was nur nicht so ganz passt ist die fehlende Prozentabgabe
 
Kannst du mal bitte die Ausgabe des Befehls "mount" posten?

MfG Oliver
 
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
 
Und bitte noch die Ausgabe von "df".

MfG Oliver
 
ist bestimmt ein "jahr2009"-Problem, sehe ich schon... ;)
 
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 !
 
Zuletzt bearbeitet:
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
 
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.
 
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
 
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

  • df_ausgabe.txt
    280 Bytes · Aufrufe: 3
  • df_hex_ausgabe.txt
    1.4 KB · Aufrufe: 3
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.
 
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
 
Zuletzt bearbeitet:
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
 
Benutz mal die Suche. Es geht mit "mount -o bind ...".

MfG Oliver
 
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

  • Freetz-Status1.jpg
    Freetz-Status1.jpg
    76.8 KB · Aufrufe: 13
  • Freetz-Status2.jpg
    Freetz-Status2.jpg
    75 KB · Aufrufe: 13
Auf Freetz.org ?!

Dies war mir eigentlich auch schon klar.

Nur in welchem Untermenue ?

Zeitachse ?
Ticket-System ? ->


Grüße
 
Bis jetzt hat doch niemand ein Ticket angelegt, da wird man dann wohl nichts finden können. Probier mal die "Zeitlinie"
 
@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.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.