Datei Jede Sekunde Lesen, schlecht für SD Karte??

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    ich habe ein Programm das in unterschiedlichen Abständen eine Datei ändert.
    Das kann einmal mal die Stunde oder einmal am Tag sein.
    Das eine SD Karte es nicht mag ständig überschrieben zu werden habe ich bereits gelesen.

    Aber juckt es eine SD Karte wenn ich jede Sekunde eine Datei öffne um zu schauen ob sich etwas geändert hat?

    Einmal editiert, zuletzt von blueberlin (6. Februar 2017 um 20:38)

  • Datei Jede Sekunde Lesen, schlecht für SD Karte??? Schau mal ob du hier fündig wirst!

  • Servus,
    solange durch das Öffnen keine lock-Datei auf der SD-Karte angelegt wird, ist das wohl unbedenklich.
    Ich würde da aber einfach mal die mtime (modification time) mit stat() überprüfen (dazu gibts sicher auch ein Pendent für andere Sprachen) und nur reinschauen wenn sich die geändert hat.

    cu,
    -ds-

  • Hallo blueberlin,


    Aber juckt es eine SD Karte wenn ich jede Sekunde eine Datei öffne um zu schauen ob sich etwas geändert hat?


    Warum musst Du die Datei öffnen, um eine Änderung festzustellen? Du brauchst doch bloß das Datei-Attribut "Erstelldatum-Zeitstempel" mit dem letzten erfassten Vorgang zu vergleichen. Ist dieses aktueller als vorher, dann hat sich da wohl was geändert.

    Solche Abfragen haben keinen Einfluss auf die Lebensdauer der SD-Karte.

    Beste Grüße

    Andreas


    EDIT: Dreamshader war schneller - aber auch nur deshalb, weil meine Freundin mich während des Schreibens angerufen hatte und - freundlich wie ich bin - habe ich meine gesamte Konzentration auf das Sprechen gelenkt...

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (6. Februar 2017 um 20:55)

  • @ds atime du meinst, mtime wird sich sowieso nur bei Schreibzugriffen ändern
    EDIT
    ups, als alternative zum Reinschauen. Dann sorry, ja

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (6. Februar 2017 um 20:58)

  • ilovepis So allgemein ausgedrückt stimmt das nicht. Mountest du mit "atime" Option (default bei den meisten Distros), findet für jedes Öffnen einer Datei, ein Schreibvorgang (Aktualisierung des Access-timestamps) auf der Karte statt.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (6. Februar 2017 um 21:12)


  • Das kann einmal mal die Stunde oder einmal am Tag sein.

    Ein Dateizugriff ein mal die Stunde oder ein mal am Tag - ich glaub das dürfte vernachlässigt werden ;) Da gibts so viele andere Prozesse die weitaus häufiger auf eine Datei vom System zugreifen, wenn man sich da um alle derart Sorgen machen würde müssten viele SD Karten schon lange gestorben sein....
    An dieser Stelle erinnere ich gleich mal an meinen Pi1rev1 der seit ca. 3 Jahren bei EDIS.at steht und ua. die Spruchbilder im meiner Signatur generiert - für jede Seite eines Threads hier im Forum, für jeden Aufruf, ein neues Bild - und dort steckt seit ca. 3 Jahren die selbe SD Karte drin. Klar, schreibende Zugriffe wie /var/log/ hab auch ich in ein tmpfs ausgelagert... Aber bisher geht es hier im Thread nur um Lesezugriffe.

  • Hallo blueberlin,

    gib doch mal

    Code
    lsof

    in der Konsole / LXTerminal ein.

    Dieses Linux-Kommando gibt Dir die List of Open Files. Hier sind zwar auch Dateien dabei, die sich im RAM befinden. Es sind aber auch viele dabei, die sich auf Dateien auf der SD-Karte beziehen.

    Sorgst Du Dich darum, was das Betriebssystem von sich aus auf die SD-Karte schreibt? Nee, oder? Dann kannst Du einzelne Einträge Deiner Anwendung- wie Meigrafd zutreffend bemerkt - vernachlässigen.

    Ich programmiere und schreibe direkt z.B. direkt auf die SD-Karte. Da kommen pro Compilierschritt innerhalb von einer Sekunde mehrere 100 kByte zustande. Und das - wenn ich gut drauf bin - im Minutenabstand oder gar noch häufiger. Und die SD-Karte des hauptsächlich betroffenen RPis ist seit Frühjahr 2013 im Einsatz.

    Wenn Du trotzdem immer noch Befürchtungen hegen solltest: Wenn das Programm im Gesamtsystem inkl. Spannungsversorgung sorgenfrei läuft, dann richte eine RAM-Disk an und schreibe Deine Daten dort hinein. Und immer vor dem Herunterfahren wird diese Datei automatisch gesichert. Ebenso kannst Du diese Datei in der RAM-Disk sichern, wenn die Dateigröße ein Vielfaches einer Größe überschreitet. Z.B. Vielfache von 4096 oder so. Das kann dann auch ein kleines Programm im Hintergrund erledigen.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (7. Februar 2017 um 08:40)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!