Textdatei, die auf einem anderen Pi im Netzwerk liegt, öffnen

  • Hallo,


    ich habe zwei Pis, die in einem Netzwerk sind. Auf Pi1 speicher ich eine Zahl (Temperatur) in einer txt-Datei.

    Mein Plan wäre es nun auf Pi2 die txt-Datei zu öffnen. Ist das irgendwie möglich?

    Ich habe Samba auf den Pis installiert und kann auf meinem PC einfach den Netzwerkpfad im Explorer eingeben und auf die Pis zugreifen.

    temp = open(netzwerkpfad/datei.txt,'r').read()) wäre mein Plan aber das klappt noch nicht.


    Geht es so wie ich es mir denke irgendwie? Oder empfehlt ihr mir es anderweitig zu machen?


    Gruß, Tom

  • Da fehlen Anführungszeichen

    Sorry, Ja, das weiß ich. Das war nur sinnbildlich gemeint. Ich weiß wie ich eine Datei öffne, speichere, etc.. Ich mache es allerdings nicht mit with, sondern so, wie ich es in diesen Videos (1/2) "gelernt" habe.

    Wenn es Vorteile hat lasse ich mich gerne eines Besseren belehren, wie es mit with geht.

    Dazu nötig wäre deine smb Konfiguration als auch dein Mount Befehl um dir helfen zu können.

    Samba habe ich nach diesem Beispiel installiert. Meine config Datei ist wie in der Videobeschreibung.

    Was du mit Mount Befehl meinst, weiß ich nicht.


    Was ich versucht habe und warum ist folgendes:

    In Windows gebe ich im Explorer "\\RPi\HOMEPI\Desktop\" ein und befinde mich im Ordner. Daher dachte ich, ich öffne die Datei direkt aus dem Netzwerk. Ich weiß aber anscheinend nicht wie. Aus \ scheint / zu werden, aber der Pfad "//RPi/HOMEPI/Desktop/test.txt" funktioniert auch nicht.


    Gruß, Tom

  • Wenn es Vorteile hat lasse ich mich gerne eines Besseren belehren, wie es mit with geht.

    Hat es definitiv, with kümmert sich von alleine darum, dass die Datei wieder geschlossen wird, recht viel anders geht das ganze auch nicht. Sinnbildlich:

    Code
    with open("pfad/datei.txt", "r") as file:
        var = file.read()
    print("Ende")

    Samba habe ich nach diesem Beispiel installiert. Meine config Datei ist wie in der Videobeschreibung.

    In dieser Sache sind wir sehr Videoscheu, zeig uns bitte DEINE vorhandene Config.

  • In dieser Sache sind wir sehr Videoscheu, zeig uns bitte DEINE vorhandene Config.

    Das hat nichtmal etwas mit dem Video zu tun. Der Code steht formatiert in der Videobeschreibung. Wenn ich ihn kopiere ist er unformatiert.


    Code
    sudo nano /etc/samba/smb.conf Configuration: [global] netbios name = RP2 server string = The Pi File Center workgroup = WORKGROUP hosts allow = socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536 remote announce = remote browse sync = [HOMEPI] path = /home/pi comment = No comment browsable = yes read only = no valid users = writable = yes guest ok = yes public = yes create mask = 0777 directory mask = 0777 force user = root force create mode = 0777 force directory mode = 0777 hosts allow = [HOME ASSISTANT] path = /var/opt/homeassistant comment = No comment browsable = yes read only = no valid users = writable = yes guest ok = yes public = yes create mask = 0777 directory mask = 0777 force user = root force create mode = 0777 force directory mode = 0777 hosts allow = 
  • Hallo Tillmario,


    zum einen ist das, was in Code steht, nicht vollständig. Zum anderen ist lediglich interessant, was in der smb.conf auf DEINEM Pi zu finden ist. Und wenn das mit dem Codeblock aus unerfindlichen Gründen nicht funktionieren sollte, häng die Datei doch einfach an. So ist es nutzlos.


    Falls Du Unterstützung brauchst, liefere bitte genauere Informationen. Der Code steht formatiert in der Videobeschreibung. heißt jetzt was genau? Welcher Code ist gemeint? Du hast ihn verwendet/nicht verwendet/geändert/nicht geändert/mit Programm xy bearbeitet etc. Eigentlich weißt Du doch, wie's läuft.


    Gruß, STF

    • Official Post

    Was du mit Mount Befehl meinst, weiß ich nicht.


    Wie ist die Ausgabe von mount auf dem RPi, auf dem sich die test.txt befindet?


    Aus \ scheint / zu werden, aber der Pfad "//RPi/HOMEPI/Desktop/test.txt" funktioniert auch nicht.

    In Windows werden Pfadangaben mit Backslash (\) gemacht, bei Linux wird dagegen Slash (/) verwendet. Das sind ja aber nur "Trennzeichen" im Pfad zur Datei. ;)

  • Wenn ich das so richtig interpretiere, hat er einfach eine (Teil-)Kopie

    aus dem Video übernommen.

    Zur Info: Diese smb.conf fängt mit "[global]" an und hört (hier) mit "hosts allow =" wieder auf.

    Alles andere führt nur zu Fehlern. Außerdem wäre es nett, wenn der Code so hier stehen würde wie bei dem Youtube-Video

    Anpassen solltest Du ihn denoch, ich werde mich allerdings hier nicht durchwuseln.


    Meine Daten übertrage ich z.Z. mittels SNMP, dazu brauche ich weder Samba noch NFS (was vielleicht noch eine Alternative wäre.


    MfG


    Jürgen

  • Meine Daten übertrage ich z.Z. mittels SNMP, dazu brauche ich weder Samba noch NFS (was vielleicht noch eine Alternative wäre.

    Auch NFS wäre die Kanone, die auf Spatzen schiesst.


    Jeder Linux Grundkurs würde zunächst Telnet oder FTP dafür vorschlagen.




    Servus !

    RTFM = Read The Factory Manual, oder so

  • Ach du meine Güte.

    Zum anderen ist lediglich interessant, was in der smb.conf auf DEINEM Pi zu finden ist.

    Genau so, wie es in der Videobeschreibung steht habe ich es übernommen und es funktioniert über Windows ja auch. Das ist doch gar nicht das Thema. Es ist jetzt lediglich die Frage, was ich eingeben muss, damit der Pi auch auf diesen Ordner zugreift.

    In Windows werden Pfadangaben mit Backslash (\) gemacht, bei Linux wird dagegen Slash (/) verwendet. Das sind ja aber nur "Trennzeichen" im Pfad zur Datei. ;)

    Ja, so war ja auch meine Annahme, daher verstehe ich deinen ";)" nicht. Also warum funktioniert x = open('//RPi/HOMEPI/Desktop/test.txt','r').read() in Python nicht, wenn //RPi/HOMEPI/Desktop/ in Windows funktioniert? Da muss doch der Fehler liegen, d.h. wie muss ich es schreiben?

    Wie ist die Ausgabe von mount auf dem RPi, auf dem sich die test.txt befindet?

  • Jeder Linux Grundkurs würde zunächst Telnet oder FTP dafür vorschlagen.

    Telnet? Ganz sicher nicht, auch nicht in privaten Netzwerken.

    Und NFS ist leichter eingerichtet als Samba:

    http://www.netzmafia.de/skript…RasPi/NFS_Einrichten.html


    SNMP ist zwar etwas schwerer einzurichten, aber wenn es erstmal läuft ist es recht zuverlässig.

    Zudem kann man auch noch andere Rechnerspezifische Werte abfragen.

    Und es ist erweiterbar mit eigenen Scripten.

    Ich weiss nicht welche Temperaturen er abfragen will, aber Beispiele finden sich im Forum.


    Und mit MQTT habe ich noch nicht genug Erfahrung um da mitreden zu können.


    MfG


    Jürgen


    Edit: Fiptehler

  • Ach du meine Güte.

    Nur die Ruhe bewahren, du erwartest Hilfe von uns, nicht wir von dir. Wir erwarten nur dass wir alle Informationen im Thread präsentiert kriegen und nicht erst von verschiedenen Seiten zusammendrücken müssen.;)


    Das hier bitte beachten: Wie Frage ich nach Hilfe?


    Außerdem der Grund warum du deine nicht die vom Tutorial zeigen sollst, vielleicht ist ja beim kopieren/abschreiben etwas schief gegangen oder wurde vergessen. Deswegen gilt immer prinzipiell die eigene zu zeigen. Du musst immer bedenken, dass Tutorial funktioniert in der Regel, also muss der Fehler ja am eigenen liegen...so viel dazu.


    Du sagst es funktioniert in Python nicht. Woran äußert sich das? Bitte komplette Fehlermeldung posten.


    Binde die Sambafreigabe ins lokale Filesystem ein, und greife dann auf die Datei zu.

    • Official Post

    dass Tutorial funktioniert in der Regel

    Oder das extreme Gegenteil, das Tutorial ist Scheiße... :stumm::lol:


    Ich hatte ja letztens mal wieder das Vergnügen einer Sambainstallation: RE: Public Share mit Samba funktioniert nicht


    Dabei hatte ich gerade mal 5 Zeilen der smb.conf hinzugefügt, den Samba-User erstellt und nach einem sudo /etc/init.d/samba restart konnte ich die Freigaben auf meinem Windoskübel sehen und editieren.


    //Edit: Wenn es keinen Gastzugang ohne Anmeldung gibt, dann wird das evtl. die Probleme verursachen. Warum mountest Du den freigegebenen Sambaordner nicht einfach auf dem RPi, auf dem das Script liegt?

  • Du sagst es funktioniert in Python nicht. Woran äußert sich das? Bitte komplette Fehlermeldung posten.

    Code
    Traceback (most recent call last):
      File "/home/pi/Desktop/Test.py", line 1, in <module>
        x = int(open('//RPi/HOMEPI/Desktop/test.txt','r').read())
    FileNotFoundError: [Errno 2] No such file or directory: '//RPi/HOMEPI/Desktop/test.txt'


    Kann sich bitte jemand dazu äußern, ob x = open('//RPi/HOMEPI/Desktop/test.txt','r').read() mit den korrekten samba Einstellungen funktionieren müsste. Oder ist in dem Pfad schon ein Fehler?

  • x = open('//RPi/HOMEPI/Desktop/test.txt','r').read()

    Das kann gar nicht funktionieren, denn das System hat keine Ahnung, worauf Du da zugreifen willst. Im Win Explorer eingegeben wird über CIFS die Datei geöffnet, das passiert alles im Hintergrund und nur deshalb, weil Windows kaum mehr kann und daher alles inkl. Anmeldung macht. Und weil es unter Linux etliche Möglichkeiten gibt, musst Du schon sagen, welche es nutzen soll. Eine Suche nach Python samba zugriff sollte irgendwie Licht ins Dunkel bringen. Oder, Du mountest die Freigabe ins Dateisystem, geht auch.


    Grüße, STF