rootfs läuft voll aber Überwachungsscript zeigt keine anwachsenden Ordner ?!?

flugwaps

Benutzer
Mitglied seit
11. Feb 2009
Beiträge
168
Punkte für Reaktionen
3
Punkte
24
Guten Morgen,
wahrscheinlich sehe ich nur den Wald vor lauter Bäumen nicht oder bin total auf dem falschen Dampfer ;-)
Laut df läuft mein rootfs voll, aktuell bereits 95 %.
Um herauszufinden im welchem Ordner das passiert läuft z.B. dieses Script minütlich per cron :
#!/opt/bin/bash path="/" cd $path for a in $(ls -d */) ; do [ "$a" == "proc/" ] && continue [ "$a" == "volume1/" ] && continue [ "$a" == "volumeUSB1/" ] && continue [ "$a" == "volumeUSB2/" ] && continue [ "$a" == "volumeUSB3/" ] && continue echo "$path$a" du "$path$a" -s | cut -f1 >> "/volume1/log/"$(basename $a)".2.log" done df / | tail -1 | awk '{printf "%s\n", $3}' >> "/volume1/log/df.2.log" exit 0
Die Änderung der überwachten Ordner zeigt mir dieses script an :
while true ; do clear; echo "/" for i in /volume1/log/*.2.log ; do printf "file %-40s : %6d %6d %4d \n" $i $(head -1 $i|xargs) $(tail -1 $i|xargs) $(bc -l <<< "$(tail -1 $i|xargs)-$(head -1 $i|xargs)") done; df /dev/md0 sleep 10; done
Es wird der erste Eintrag vom letzten Eintrag subtrahiert und angezeigt, was ja der Größenänderung entspricht.
Eine Ausgabe sieht z.B. so aus :
/ file /volume1/log/0755.2.log : 4 4 0 file /volume1/log/bin.2.log : 74980 74980 0 file /volume1/log/config.2.log : 0 0 0 file /volume1/log/dev.2.log : 4 4 0 file /volume1/log/df.2.log : 2050264 2148328 98064 file /volume1/log/etc.2.log : 12416 12416 0 file /volume1/log/etc.defaults.2.log : 9048 9048 0 file /volume1/log/initrd.2.log : 4 4 0 file /volume1/log/lib.2.log : 302476 302476 0 file /volume1/log/lib32.2.log : 11748 11748 0 file /volume1/log/lib64.2.log : 302476 302476 0 file /volume1/log/lost+found.2.log : 4 4 0 file /volume1/log/mnt.2.log : 4 4 0 file /volume1/log/opt.2.log : 598692 598692 0 file /volume1/log/root.2.log : 9128 9264 136 file /volume1/log/run.2.log : 7160 7296 136 file /volume1/log/sbin.2.log : 26504 26504 0 file /volume1/log/sys.2.log : 0 0 0 file /volume1/log/tmp.2.log : 27140 27144 4 file /volume1/log/tmpRoot.2.log : 4 4 0 file /volume1/log/usr.2.log : 1055060 1054456 -604 file /volume1/log/var.2.log : 192424 196376 3952 file /volume1/log/var.defaults.2.log : 6648 6648 0 Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 2385528 2148372 118372 95% /
Nun hätte ich erwartet, dass die Zunahme in df.2.log sich auf die Änderungen in den anderen Ordner verteilt, tut sie aber nicht.
Wo liegt der Denkfehler ?
Viel Spaß bei dieser Denksportaufgabe :)

flugwaps.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.145
Punkte für Reaktionen
906
Punkte
424
Du schaust im falschen Dateisystem.
md0 ist auf die Wurzel / gesetzt.
/volumeX ist aber schon außerhalb und nur unterhalb von / eingehängt (zählt also nicht zur Belegung dazu).

Schau dir mal 'df -h' an.
Die Ordner die du anschauen sollst sind z.b. /var oder /usr oder /root und alle Dateien die direkt in / liegen.
 

flugwaps

Benutzer
Mitglied seit
11. Feb 2009
Beiträge
168
Punkte für Reaktionen
3
Punkte
24
Du schaust im falschen Dateisystem.
md0 ist auf die Wurzel / gesetzt.
/volumeX ist aber schon außerhalb und nur unterhalb von / eingehängt (zählt also nicht zur Belegung dazu).

Schau dir mal 'df -h' an.
Die Ordner die du anschauen sollst sind z.b. /var oder /usr oder /root und alle Dateien die direkt in / liegen.
Hallo Fusion,
ich kann Deiner Argumentation nicht so ganz folgen.

Klar ist md0 auf "/" gesetzt. Die beiden sind identisch.
Die Volumeauslastung interessiert mich nicht.

Der "df /" liefert mir die Belegung des "/" (rootfs) ohne gemountete FS (wie z.B. die Volumes).

Das erste Script im cron schreibt die Größe der Verzeichnisse im "/" außer proc und volume* in je ein log pro Verzeichnis nach /volume1/log/PATHNAME.2.log. (Ok, dev und sys hätte ich mir sparen können.)
Zusätzlich geht noch den Wert "used" von "df /" nach df.2.log.

Das zweite Script zeigt nur die Differenz zwischen erstem und letztem Aufruf.
Direkt in "/" liegen keine anwachsenden Dateien, und Pfade wie z.B. /var , /usr oder /root werden mit "du "/PATHNAME" -s | cut -f1" im ersten Script geprüft.

$path ist nur drin da das Script mehrfach läuft, mit z. B. "/var" anstelle von "/" um andere Ordner gezielt zu prüfen.
Die Logs gehen dann freilich in andere PATHNAME.x.log

Mir läuft seit >2 Wochen das "/" voll. Beginnend bei 75 %, nun schon auf 95 %.
Dann lösche ich schnell ein paar Logs in "/var/log", aber zurück auf 75 % komme ich damit nicht wieder, sondern verhindere nur das mir die Kiste bei 100 % abschmiert.
Ich bin da immer noch ratlos.

VG
flugwaps.
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.145
Punkte für Reaktionen
906
Punkte
424
Wenn du das die ganze Zeit beobachtest… in welchem Ordner sammeln sich denn die Daten die den Unterschied zwischen 75% und 95% ausmachen?
Oder sind das die zwei Aufrufe die trotz zunehmender Auslastung keine entsprechende Belegungszunahme in den Ordnern anzeigen?

Dann zeig uns mal bitte df -h und unten stehendes…

76% ist bei mir die Normalauslastung. du -xhd 1 / reicht mir dann um zu sehen wo es abweicht, sich was sammelt.
1.3G in /usr
318M in /var
80M mit anderem Kleinvieh.
 

flugwaps

Benutzer
Mitglied seit
11. Feb 2009
Beiträge
168
Punkte für Reaktionen
3
Punkte
24
Hallo Fusion,

ich bin im Forum fündig geworden.
Beim Urgestein Itari ;-) Dem gings auch mal so.

Ich hatte mal einen USB-Stick zum Sichern von irgendwas per script.
Jedenfalls war /volumeUSB1/usbshare kein mount mehr, sondern nur noch ein Verzeichnis im "/" fs.
Und die gemounteten "/volume*" habe ich ja in meinen Scripten ignoriert.
Den Rest kannst Du Dir denken.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!