Forum: PC-Programmierung Von Python aus Daten auf einen USB-Stick schreiben (Linux Raspberry Pi)


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Messgerät gebaut, dass für die GUI und Messdatenauswertung 
einen Raspberry Pi mit Touchscreen verwendet. Nun würde ich gerne die 
Messergebnisse auf einen USB Stick speichern können. Das ganze soll von 
der GUI aus passieren können.

Ich habe mittlerweile gelesen, dass es usbmount gibt und dies 
automatisch einen Stick mounten kann, sobald er eingesteckt wird. Aber 
was passiert dann, nachdem ich die Datei geschrieben habe? Muss ich den 
Stick unmounten, damit die Daten auch sicher auf dem Stick sind oder 
gibt es irgendwelche Konfigurationen, die jegliches Caches für den Stick 
abschalten?

von Thorsten Legat (Gast)


Bewertung
0 lesenswert
nicht lesenswert
umount ist dein freund.

von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Braucht umount nicht root rechte?

von Julius J. (joe_joule)


Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:
> Braucht umount nicht root rechte?

Ja, arbeitest du nicht als root auf dem Pi?

Als mountoptionen bieten sich "sync" bzw. "flush" an, die dafür sorgen 
dass Daten sofort geschrieben werden. Aber woher weißt du, dass nicht 
gerade geschrieben wird wenn der Stick herausgezogen wird?

Ich würde ein kleines Script schreiben welches den Stick mountet, die 
Daten schreibt, den Stick unmountet und anschließend anzeigt dass dieser 
entfernt werden kann.

von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Schreiben kann ja nur ich gerade mit meiner Software auf den Stick. 
Jemand anders ist da ja nicht. Darum hätte ich halt in der Software 
gemeldet, wenn die fertig ist mit dem Schreiben.

Aber wirklich unmounten ist wohl die sauberste Lösung.

PS: Nein, die Python Software läuft nicht als root

von Julius J. (joe_joule)


Bewertung
0 lesenswert
nicht lesenswert
Dann sollte der USB Stick mit der Option "user" in  /etc/fstab 
eingetragen sein, damit auch der normale Benutzer mount und umount 
nutzen darf.

von Sven (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für diesen Hinweis!

Dann werde ich es so machen.

von Sheeva P. (sheevaplug)


Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:
> Ich habe mittlerweile gelesen, dass es usbmount gibt und dies
> automatisch einen Stick mounten kann, sobald er eingesteckt wird. Aber
> was passiert dann, nachdem ich die Datei geschrieben habe? Muss ich den
> Stick unmounten, damit die Daten auch sicher auf dem Stick sind oder
> gibt es irgendwelche Konfigurationen, die jegliches Caches für den Stick
> abschalten?

Wenn Du den Stick abziehen möchtest, dann solltest Du ihn unmounten. 
Wenn der Stick eingesteckt bleiben soll, reicht es, den Systembefehl 
fsync(2) für Deine Datei aufzurufen. Unter Python wird der Befehl in 
os.fsync angeboten, auf ein Python-file() f wird das dann mit 
os.fsync(f.fileno()) aufgerufen.

Das Mounten und Unmounten kann übrigens auch ein leider in Vergessenheit 
geratenes Programm namens automounter bzw. autofs durchführen. Das 
mountet den USB-Stick beim Zugriff auf den konfigurierten Mountpoint und 
unmountet ihn wieder, wenn für eine bestimmte Zeit kein Zugriff mehr 
stattgefunden hat.

von Sheeva P. (sheevaplug)


Bewertung
0 lesenswert
nicht lesenswert
Sven schrieb:
> Braucht umount nicht root rechte?

Das hängt von den Mountoptionen des betreffenden Dateisystems ab. Und 
wer ein Programm als User mit root-Rechten ausführen möchte, dann das 
explizit mit der NOPASSWD-Option für sudo freischalten. Achtung: die 
/etc/sudoers immer mit "visudo" bearbyten, dann wird eine Fehlerprüfung 
gemacht bevor die Datei geschrieben wird; den gewünschten Editor kann 
man dabei über die Umgebungsvariable EDITOR einstellen:
1
sudo EDITOR='emacs -nw' visudo

von Rolf M. (rmagnus)


Bewertung
0 lesenswert
nicht lesenswert
Man könnte auch einfach pmount verwenden. Das ist extra für 
Wechseldatenträger gemacht und braucht keine root-Rechte.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.