Geschriebene Daten im Dateisystem ermitteln

Maniaxx

Maniaxx

Stammgast
38
Hallo,
wie kann ich geschriebene Daten (Name, Menge) im Dateisystem ermitteln? Mit 'find' bekomme ich die Dateinamen (eines bestimmten Zeitraums), nicht aber wie viel die einzelnen Dateien geschrieben haben.

Im Prinzip möchte ich ein Customimage auf "Badguys" untersuchen, die verhältnismäßig viele Schreibzugriffe verursachen.
 
Das würde bedingen, dass jeder Schreibzugriff protokolliert werden müsste. Das ist weder vom Zeitaufwand noch vom Speicherplatzbedarf her realistisch für ein Mobilbetriebssystem. Du kannst also nur über den Zeitstempel ermitteln, dass geschrieben wurde, mehr aber nicht.
 
Das verbraucht doch keinen Speicher, eher Ressourcen von CPU und Dateisystem. Da wird kurz in einer Datenbank bei dem Dateinamen +1 gesetzt und die Bytes addiert und das war's (pro Schreibzugriff). Der Aufwand ist doch sehr gering. Außerdem ist es ja auch nicht für den Dauereinsatz gedacht, sondern nur um mal ein paar Stunden mit zu loggen.

Auf meinem Linuxrouter logge ich die Dateien so:
find / -mmin -240 | grep -v '/dev' | grep -v '/proc' | grep -v '/var/log/rrd' | grep -v '/var/lock' | grep -v '/var/run' | grep -v '/sys'
(die angegebenen Ordner werden ausgeschlossen, 240min entspricht einer Auflistung der letzten 4 Stunden).

Problematisch dabei (da nicht erfassbar) sind Dateien, die oft wiederholt geschrieben werden. Syslogd/Klogd bzw. var/log/messages ist zwar recht klein (<2MB), verursacht aber bei mir ca. 30-70MB pro Tag Schreibzugriffe (wobei dieser Wert im Webfrontend des IPFire geliefert wird. Wie die den erfassen, habe ich noch nicht recherchiert).. Seit ich das in die Ramdisk verschoben habe, habe ich nur noch 1-2MB Schreibzugriffe pro Tag. Der Router läuft natürlich auch auf CompactFlash, sonst würde das ja keinen Sinn machen.

Vielleicht reicht das ja auch... Ich teste das erst mal mit dem Androiden.
 
Zuletzt bearbeitet:
Ich sehe nicht, dass Dein langes find-Kommando dasselbe täte. Es listet einfach die Dateien auf, die sich in den letzten 240 min geändert haben und die sich nicht in bestimmten Verzeichnissen befinden. (Es fehlt übrigens das ^ vor den Dateinamen, damit sie auch im Wurzelverzeichnis verankert sind. So trifft es auch Subdirectories.)

Davon abgesehen, würde ich nicht tausend grep-Prozesse hintereinanderschalten und Ressourcen verbraten. Useless Use of Grep würde ich das nennen, wozu gibt es reguläre Ausdrücke? Ein Zusammenschalten der Verzeichnisse mit „\|” bei grep und „|” bei egrep (oder grep -e) tut's genauso und alles lässt sich mit einem (Zahl 1) grep erledigen. Aber – wie gesagt – ich sehe nicht, dass Dein find + grep irgendwie die geschriebene Menge der letzten 240 Minuten angeben würde. Und um die geht es Dir doch laut Eröffnungsposting.
 
Zuletzt bearbeitet:
mizch schrieb:
Ich sehe nicht, dass Dein langes find-Kommando dasselbe täte.
Das wollte ich damit auch nicht sagen. Da es aber scheinbar das Einzige ist, was dahingehend hilfreich ist, bleibt mir ja nichts anderes übrig.
 

Ähnliche Themen

H
Antworten
1
Aufrufe
313
holms
holms
A
Antworten
4
Aufrufe
358
3Komma14
3Komma14
Z
Antworten
8
Aufrufe
401
Zhenwu
Z
Zurück
Oben Unten