Lebensdauer SD-Karte

  • Guten Morgen zusammen,


    ich möchte mit dem Raspberry alle 2 Sekunden eine Informationen aus einer Textdatei von der SD-Karte einlesen. Geschrieben wird dabei nichts. Hat dieses häufige Lesen eines Wertes einen Einfluss auf die Lebensdauer der SD-Karte?


    Vielen Dank und schöne Weihnachten.


    whitechristmas

  • Flash speicher wird meines Wissens nur beim schreiben "gealtert". Lesen kannst Du also so viel/oft Du willst. Aber vermutlich wird auch darauf geschrieben, sonst würde lesen keinen Sinn machen... Vielleicht kann man das Lesen so triggern, dass dies erst erfolgt nachdem geschrieben wurde (habe aber diesbezüglich auch keine bessere Idee als pollen)...

    ...wenn Software nicht so hard-ware ;-) ...

    Freue mich über jeden like :thumbup:

  • Betriebssysteme bieten i.d.R. sog. File- oder Directory-Hooks an. D.h. Du subscribst Dich auf ein File oder Directory mit einer Callbackfunktion und diese wird dann aufgerufen, sobald die von Dir spezifizierte Änderung erfolgte. Das muß nicht immer schreiben allein sein. Ändern, löschen, neue Datei... auf all den Krempel kannst Du Dich informieren lassen. Dann entfällt das Pollen.

  • Guten Morgen whitechristmas


    VeryPrivat hat es richtig gesagt. Ich fasse es ganz kurz zusammen.

    Lesen egal

    Schreibend ist ausschlaggebend.


    Was ich mich viel bei deiner Frage fragei st folgendes:

    - Wie kommt die Datei auf die SD Karte? (Sprich was ist der Inhlat, bleibt der immer gleich?)

    Wenn ja - wieso muss der so oft ausgelesen werden?


    Ist es ggf eine Option den Pi über das Netzwerk (NAS) booten zu lassen oder kannst du das OS auf eine USB-Festplatte auslagern? - In diesem Fällen wären die schreibzugriffe nahezu unbegrenzt.


    Gruss Dani

  • Lesen einer SD Karte ist bzgl der Lebensdauer einer SD Karte unkritisch. Jedwede Änderung auf der SD Karte dagegen schon. Sofern Du eine dedizierte SD Karte hast von der nur gelesen werden soll wird sie garantiert länger halten als die SD Karte mit dem OS. Um ganz sicherzugehen, dass sie nicht geändert wird kannst Du sie auch ReadOnly im OS mounten.


    Ich vermute aber eher dass Du keine dedizierte SD Karte benutzen willst sondern die Daten auch auf der SD Karte auf der sich auch das OS befindet halten willst. Da sehe ich folgende Aktionen:

    1. USB Stick benutzen oder über über PXE vom NAS booten (wurde schon erwähnt)
    2. Häufig geschriebene Daten in tmpfs/Speicher verlagern (/tmp, /var/tmp, ...). Wenn ich mich nicht irre gibt es hier im Forum ein nettes Tutorial zu dem Thema). Ansonsten nach 'increase sd card lifetime' im Netz suchen
    3. Nur die nötigsten Services starten
    4. Die Option noatime in der fstab benutzen

    Sichere Deine Raspbberry regelmäßig mit raspiBackup . Sicher ist sicher ;-)


    Darum gebe ich keinen Support per PN


    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Benedict Torvalds, 28.9.2003


  • Hallo zusammen,

    ich habe mir eine Überwachungskamera programmiert und möchte diese mit dem Smartphone ein- bzw. ausschalten. Dazu wollte ich fürs Ein- und Ausschalten jeweils ein kleines Skript schreiben und den Status in einer Textdatei speichern. Das Skript für die Überwachung soll immer laufen und bei jedem Zyklus nachfragen, ob die Überwachung noch "scharf" ist. Die Textdatei liegt auf der selben SD-Karte wie das OS.


    Vielen Dank an alle.


    whitechristmas

  • Hallo whitechristmas,


    Du schreibst: Bei Einschalten wird eine Datei geändert. Beim Ausschalten wird die Datei geändert. Alle 2 Sekunden soll der Status über ein Skript ausgelesen werden.


    Ich würde das ein wenig anders machen:

    Warum soll ein Skript alle 2 Sekunden einen Status prüfen? Das Einschalt-Skript setzt einen Status. Dieser bleibt solange aufrecht erhalten, bis das Ausschalt-Skript einen anderen Status setzt. Dieser bleibt solange aufrechterhalten, bis das Einschalt-Skript einen anderen Status setzt. Dieser bleibt ...


    Da braucht kein anderes Skript regelmäßig irgendwas auszulesen.


    Und denke dran: Du bräuchtest ein Skript, dass immer prüft, ob das 2-Sekunden-Prüf-Skript überhaupt noch läuft.



    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

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    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.

  • Dazu wollte ich fürs Ein- und Ausschalten jeweils ein kleines Skript schreiben und den Status in einer Textdatei speichern. Das Skript für die Überwachung soll immer laufen und bei jedem Zyklus nachfragen, ob die Überwachung noch "scharf" ist. Die Textdatei liegt auf der selben SD-Karte wie das OS.

    Du brauchst nicht das File auf Veränderungen pollen: Das kann das OS besser:


    https://wiki.ubuntuusers.de/inotify/


    WENN einer Veränderung des Statusfiles stattfindet, DANN Auslesen und reagieren...

  • Guten Abend.


    schnasseldag: Es werden pro Zyklus zwei Bilder geschossen und miteinander verglichen. Nur dann, wenn die Bilder unterschiedlich sind, wird ein Alarm ausgelöst und die Bilder werden auf die SD-Karte gespeichert. Ansonsten befinden sich die Bilder nur im Speicher und werden im neuen Zyklus überschrieben.


    Zentris: Wenn ich mit inotify eine Datei auf Veränderung überwache und feststelle, dass sich die Datei geändert hat, muss ich dann zuerst den Status auslesen (mit Python?) und dann ein Python-Skript starten oder killen?


    Vielen Dank und weihnachtliche Grüße.


    whitechristmas

  • Auf Log Datei auswerten, mit bash script oder Befehlsfolge habe ich ein Beispiel in bash für inotify Benutzung bereitgestellt ;)

    Sichere Deine Raspbberry regelmäßig mit raspiBackup . Sicher ist sicher ;-)


    Darum gebe ich keinen Support per PN


    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect." Linus Benedict Torvalds, 28.9.2003


  • Zentris: Wenn ich mit inotify eine Datei auf Veränderung überwache und feststelle, dass sich die Datei geändert hat, muss ich dann zuerst den Status auslesen (mit Python?) und dann ein Python-Skript starten oder killen?

    Im Prinzip ja.


    Wenn du allerdings, wie beschrieben, 2 Bilder miteinander vergleichst, dann kannst du doch auch gleich innerhalb dieser Vergleichsroutine eine Aktion starten. Dann braucht es kein Polling und kein extra File...