zurück zur Startseite

zurück zur Übersicht der Heimautomatisierung

5. Der Datenaustausch (Stand 07.11.2018)

Im weiteren Verlauf einer Automatisierung wird es immer wieder notwendig werden, Daten von und zu dem Raspberry zu übertragen. Als Empfänger, bzw. Sender der Daten soll der normale PC verwendet werden. Dazu gibt es mehrere Möglichkeiten. Ich habe folgende verwendet, da ich nur von meinem Linux-Rechner auf den Raspberry zugreifen werde.

Zuerst muss man auf dem Raspberry den entsprechenden Dienst einrichten. Dazu natürlich wieder eine ssh-Verbindung aufbauen und folgende Befehle eingeben:

sudo su

apt-get -y install nfs-kernel-server
# über nfs kann man von externen Linux-Rechnern zugreifen

echo "/ 192.168.178.0/255.255.255.0(rw,root_squash,no_subtree_check,sync,insecure,all_squash)" >> /etc/exports
# Alle Devices in meinem Heimnetz können nun mounten
# Wichtig ist das Leerzeichen nach dem ersten Schrägstrich

/etc/init.d/rpcbind start
# Der Portmapper startet beim Raspberry wohl nicht automatisch

/etc/init.d/nfs-kernel-server restart
# Neustart des Servers, damit die Einträge in der Datei /etc/exports auch wirksam werden

mkdir /home/pi/austausch
#Genau 1 Verzeichnis im Raspberry definieren, wo Datenausgetauscht werden können

chmod a+rw /home/pi/austausch
# Rechte vergeben, damit der Austausch in desem Verzeichnis möglich wird

exit

Jetzt kann man von einem Linux oder anderem Rechner aus zugreifen:

cd /media

sudo mkdir raspberry
# oder auch einen anderen Namen anstelle von "raspberry"

sudo mount xxx.xxx.xxx.xxx:/ /media/raspberry
# anstelle xxx natürlich die entsprechende Nummer der IP-Adresse

sudo chmod a+rw /media/raspberry

Das funktioniert allerdings nur, solange man sowohl den Raspberry als auch den PC nicht ausschaltet. Damit das dauerhaft so bleibt, schreibt man in die Datei /etc/fstab des PC folgende Zeile:

xxx.xxx.xxx.xxx:/ /media/raspberry nfs rw 0 0
# anstelle xxx natürlich die entsprechende Nummer der IP-Adresse

Beim Start des PC bekommt man dann aber eine Meldung, wenn der Raspberry sich nicht einhängen lässt.

Leider funktioniert das seitens des Raspberry nicht ganz, nach jedem Reboot muss man erneut eingeben:

sudo /etc/init.d/rpcbind start

sudo /etc/init.d/nfs-kernel-server restart

Das lässt sich jedoch beheben. Man benötigt 2 Dateien, die man mit einem Editor mit root-Rechten erstellen muss. Zuerst die Datei /etc/systemd/system/nfs-common.services

sudo vi /etc/systemd/system/nfs-common.services
# dann den nachfolgenden Code kopieren und einfügen, sowie die Datei abspeichern

Der einzufügende Code ist:

[Unit]
Description=NFS Common daemons
Wants=remote-fs-pre.target
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/init.d/nfs-common start
ExecStop=/etc/init.d/nfs-common stop

[Install]
WantedBy=sysinit.target

Paste geht im vi-Editor übrigens mit ctrl+shift+v

Die zweite Datei heißt /etc/systemd/system/rpcbind.service und wird auf gleiche Weise mit folgendem Code befüllt:

[Unit]
Description=RPC bind portmap service
After=systemd-tmpfiles-setup.service
Wants=remote-fs-pre.target
>Before=remote-fs-pre.target
DefaultDependencies=no

[Service]
ExecStart=/sbin/rpcbind -f -w
KillMode=process
Restart=on-failure

[Install]
WantedBy=sysinit.target
Alias=portmap

Nun noch 3 Linux-Befehle

sudo systemctl enable nfs-common
sudo systemctl enable rpcbind
sudo reboot

und dann sollte alles problemlos funktionieren.

weiter zu: 6. Die Datensicherung