Windows-Freigabe auf Raspberry. Wie?

Hallo an die Linux-Profis,

ich brauche nochmal Starthilfe. Vermutlich ganz banal, wenn man von Linux keine Ahnung hat aber ist der Einstieg schwierig.

Ich hab IPS auf Windows 10 laufen. Ich hab auf einem separaten RaspPi (Raspbian) ein Programm laufen, dass mir bestimmte gewünschte Daten als Textfile auf dem Raspberry ablegt. Ich würde gerne diese Daten mit IPS auf dem PC weiterverarbeiten. Da ich mit den Prgrammierschnittstellen wie JSON etc. noch nicht so firm bin würde mir erstmal eine einfache (um 3 Ecken Variente) Lösung reichen.

Also: Ich möchte die genannte Datei (hier Daten.txt) in definierten Zeitabständen (z.b. alle 60min) in ein von IPS aus zugreifbaren Ordner auf meinem Win-Rechner kopieren.

(1) Klar: entsprechenden Symcon/win-Ornder freigeben (192.168.178.2/UserAufIPSserver). Irgend was spezielle beachten?
(2) diesen dann auf dem Raspberry mounten:

sudo mount -t cifs //192.168.168.2/UserAufIPSserver /mnt -o user=testuser

(3) wie kopiere ich dann?

cp Daten.txt 192.168.178.2/UserAufIPSserver 

(4) wie kann ich das z.B. alle 60min automatisieren

Ab (3) komme ich nicht weiter, sofern nicht schon die Vorschritte falsch waren.

Kann einem Linuxlaien bitte jemand helfen?

Danke
hardlog

Auf dem Raspberry den Mount machen: kannst Du statisch machen (muss dann in /etc/fstab) oder mit automount wie folgt (alle Schritte als root ausführen)

Automount und Samba-client installieren

mkdir -p /media/ips
apt-get install autofs samba-client

alles auskommentieren und hinzufügen:


vi /etc/auto.master
/media/ips -fstype=cifs,rw,credentials=/root/ips.cred ://<ip ips>/<freigabe>

user/Password-Datei ips.cred anlegen

vi /root/ips.cred
username=<user>
password=<password>

jetzt den dienst freigeben und starten

systemctl enable autofs
systemctl start autofs

mit ls /media/ips/* sollte der Inhalt der Freigabe jetzt erscheinen

Zuerst einen Job erstellen. Verzeichnisse voll angeben!

vi /root/copy_to_ips.sh
#!/bin/bash
cp /<verzeichnis>/Daten.txt /media/ips/Daten.txt

ausführbar machen

chmod a+x /root/copy_to_ips.sh

und testen:

/root/copy_to_ips.sh #und die Daten.txt sollte auf dem IPS-Rechner sichtbar werden

jetzt den Job nach /etc/cron.hourly linken, damit er stündlich ausgeführt wird

ln -s /root/copy_to_ips.sh /etc/cron.hourly/copy_to_ips.sh

Etwas einfacher geht das mit der JSON-API. Damit kann man die Variablen direkt aktualisieren. Das geht auch Außerhalb von IPS mit meinem JSONAPI Wrapper

HTH Tommi

Hallo Tommi,

1000 Dank für die ausführliche Erklärung, werde es in der Mittagspause probieren. Und dann (wenn ich es hinbekommen habe auch das Projekt dahinter verraten …)

Gruß
hardlog

hmm,

ich bekomme es noch nicht hin:

Automount und Samba-client installieren

mkdir -p /media/ips
apt-get install autofs samba-client

=> soweit keine Fehlermeldung.

alles auskommentieren und hinzufügen:

vi /etc/auto.master
/media/ips -fstype=cifs,rw,credentials=/root/ips.cred :///

#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
#
#/misc  /etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
#       "nosuid" and "nodev" options unless the "suid" and "dev"
#       options are explicitly given.
#
#/net   -hosts
#
# Include /etc/auto.master.d/*.autofs
#
#+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
#+auto.master
/media/ips -fstype=cifs,rw,credentials=/root/ips.cred ://IPS-SERVER/IPSserver

user/Password-Datei ips.cred anlegen

vi /root/ips.cred
username=
password=

Entsprechend gesetzt (mit anderem PC überprüft)

jetzt den dienst freigeben und starten

systemctl enable autofs
systemctl start autofs

Keine Fehlermeldung.

Dann

ls /media/ips/*

=> ls: Zugriff auf /media/ips/* nicht möglich: Datei oder Verzeichnis nicht gefunden

Hat es was mit der Art zu tun wie ich den Windows10-Ordner freigeben muss? Innerhalb des Heimnetzgruppe komme ich an den freigeben Ordner problemlos ran.

Hardlog

Heimnetz nützt nichts, Du musst eine echte Freigabe erstellen (Ordner Markieren, rechte Maustaste->Freigeben für ->Erweiterte Freigabe und unter Allgemein->erweiterte Freigabe aktivieren. Dann Freigabe und Sicherheit Tabs entsprechend Bearbeiten.

Jetzt prüfen:
ist der Sharename „IPSserver“ wirklich richtig (das ist der „Freigeabename“?
Kannst Du den Host IPS-SERVER vom Raspberry anpingen?
Kannst Du den Share auf einem anderen Windows-PC im gleichen Netz wie der Raspberry mounten

net use Z: \\IPS-SERVER\IPSserver /USER:<user> <password>

kannst Du den Share auf dem Raspberry manuell einbinden : als root

mount -t cifs -o rw,credentials=/root/ips.cred //IPS-SERVER/IPSServer

Wird hier was angezeigt:

smbclient -L //IPS-Server -U <user>
 #password wird abgefragt

Tommi

Hallo,

danke @Tommi.
Habs jetzt nach langem probieren so gelöst (falls es noch jemand anders gebrauchen kann):

(1) Neuen Benutzer auf dem Win-Rechner anlegen (z.B. user=pi, passwort=1234). Auf dem Win-Rechner „cmd“ als Administrator aufrufen und Benutzer wie folgt erzeugen:


net user pi 1234 /add 

Dann schließen.

(2) Im Win-Explorer das gewünschte Verzeichniss freigeben und als Benutzer „pi“ hinzufügen, und entsprechend dem Wunsch die Zugriffrechte anpassen.
Damit wäre auf WindowsSteioe alles getan.

(3) Auf dem Raspberry Zielverzeichniss anlegen:

sudo mkdir /mnt/IPSserver

(4) Auf dem Raspberry die Autostartdatei aufrufen zu editieren:

sudo nano /etc/fstab

(5) Und am Ende folgende Zeile hinzufügen (natürlich noch Username (hier pi), password (hier 1234) und die Domain (i.d.R: WORKGROUP) anpassen. Freigabeverzeichnis und ZielOrdner entsprechend ggf. auch verändern.


//192.168.178.2/CaufIPSserver /mnt/IPSserver cifs defaults,rw,username=pi,password=12345,domain=WORKGROUP,file_mode=0777,dir_mode=0777,noperm,_netdev,x-systemd.automount 0 0


(6) mit

sudo mount -av

manuell aktualisieren.

(7) Test mit:

ls /mnt/IPSserver

Bei mir gehts so. Auch nach einem Reboot des Raspberry.

Das Thema mit dem automatischen kopieren folgt.

Gruß
hardlog