Im Folgenden zeige ich euch, wie man den ownCloud-Client auf dem Raspberry Pi installiert.
Durch den ownCloud-Client kann der RasPi beispielsweise im lokalen Netzwerk alle Daten aus eurer Cloud bereitstellen und sich zentral um die Synchronisierung mit dem Server kümmern und ihr spart euch den Client auf jedem einzelnen Rechner zu installieren.
Der ownCloud-Client auf dem RasPi kann dann “live” synchronisieren (wie der normale Desktop-Client), oder in einem festen Zeittakt über cron die Synchronisierung mit den Server vornehmen.
Hinweis: Diese Anleitung installiert die Version 2.3.4 des ownCloud-Clients. Für neuere Versionen wird eine aktuellere Version von QT benötigt, als in den Paketquellen von Raspbian enthalten ist.
Installation
Zuerst müssen wir die benötigten Quellen und Pakete herunterladen beziehungsweise installieren.
sudo apt-get install libsqlite3-dev qtbase5-dev libqt5webkit5-dev libssl-dev qttools5-dev-tools qt5keychain-dev cmake git mkdir -p ~/dev cd ~/dev git clone --branch 2.3.4 --depth 1 http://github.com/owncloud/client.git oc-client cd oc-client git submodule init git submodule update
Anschließend geht es an das Kompilieren des ownCloud-Clients, was einige Zeit dauern kann (ca. 25 Minuten beim RasPi 3B).
mkdir client-build cd client-build cmake -DCMAKE_BUILD_TYPE="Release" ../ make sudo make install sudo ldconfig
Nun ist der ownCloud-Client installiert und kann verwendet werden. Die korrekte Installation können wir mit owncloudcmd -v
prüfen.
Sollte dies die Fehlermeldung owncloudcmd: error while loading shared libraries: libowncloudsync.so.0: cannot open shared object file: No such file or directory
erzeugen, so hilft der folgende Aufruf:
LD_LIBRARY_PATH=/usr/local/lib/arm-linux-gnueabihf owncloudcmd -v
Alternativ kann man auch den Eintrag export LD_LIBRARY_PATH=/usr/local/lib/arm-linux-gnueabihf
in der Datei .bashrc
im Home-Verzeichnis hinzufügen.
GUI-Client
Der normale grafische Client kann über ein Terminal mittels owncloud
gestartet werden.
Möchtet ihr den ownCloud-Client automatisch beim Start des Raspberry Pi mit starten lassen (Autostart), dann fügt ihr einfach in der Datei /etc/xdg/lxsession/LXDE/autostart
eine Zeile mit @owncloud
hinzu.
CMD-Client
Zusätzlich zu dem GUI-Client gibt es noch den CMD-Client owncloudcmd
. Über diesen kann die Synchronisation über ein Terminal durchgeführt werden und es wird keine grafische Oberfläche benötigt.
Anders als der GUI-Client führt der CMD-Client nur ein mal die Synchronisation durch und beendet sich anschließend wieder. Für eine regelmäßige Synchronisation müssen wir also zum Beispiel einen CRON-Job verwenden.
Der Aufruf des CMD-Clients ist eigentlich ganz einfach:
owncloudcmd [Optionen] [lokales_Verzeichnis] [Server_URL]
Als Optionen können Benutzername und Passwort mit angegeben werden, was jedoch nicht besonders sicher ist. Besser ist es hier die Option -n
zu verwenden, wodurch netrc für den Login beim Server verwendet wird. Netrc ist denkbar einfach. Wir erstellen einfach im Home-Verzeichnis eine Datei namens .netrc
, welche den Server, Benutzername und Passwort nach folgendem Muster enthält und passen die Dateirechte an:
pi@raspi ~ $ nano ~/.netrc pi@raspi ~ $ cat ~/.netrc machine mein.server.de login benutzername password passwort pi@raspi ~ $ chmod 0600 ~/.netrc
Hier noch ein Beispiel zur Nutzung des CMD-Clients mit netrc. Das lokale Verzeichnis ist hierbei /var/daten/owncloud
. Vom Server wird die WebDAV-URL benötigt.
owncloudcmd --non-interactive -n /var/daten/owncloud/ https://mein.server.de/remote.php/webdav/
Mögliche Parameter für den CMD-Client
--user [benutzername]
,-u [benutzername]
– Benutzername für den Login beim Server--password [passwort]
,-p [passwort]
– Passwort für den Login beim Server-n
– Netrc für den Login beim Server verwenden--non-interactive
– Nicht nachfragen, sondern eine nicht interaktive Ausführung erlauben--silent
,-s
– Unterdrückt gesprächige Logmeldungen--trust
– Jedem SSL-Zertifikat vertrauen, auch ungültigen (Sinnvoll bei Verwendung von selbst signierten Zertifikaten)--httpproxy http://[benutzer@passwort:]<server>:<port>
– Den angegebenen HTTP-Proxy-Server verwenden--unsyncedfolders [datei]
– Eine Datei mit einer Liste von Dateien und Verzeichnissen angeben, die nicht vom Server zum Client synchronisiert werden sollen--exclude [datei]
– Eine Datei mit einer Liste von Dateien und Verzeichnissen angeben, die nicht vom Client zum Server synchronisiert werden sollen
Automatische Synchronisation mit dem CMD-Client
Für eine automatische Synchronisation mittels CRON-Job erstellen wir uns zuerst ein kleines Bash-Script unter /home/pi/owncloud-sync.sh
mit folgendem Inhalt, wobei das Lokale Verzeichnis und die Serveradresse noch angepasst werden müssen:
#!/bin/bash LOCAL=/var/daten/owncloud/ SERVER=https://mein.server.de LOG=/var/log/owncloud-sync.log export LD_LIBRARY_PATH=/usr/local/lib/arm-linux-gnueabihf OC=$(ps ax | grep [o]wncloudcmd) if [ "$OC" != "" ]; then echo "ownCloud-Sync läuft schon!" exit 1 fi echo "====================" > $LOG date >> $LOG echo "ownCloud-Sync gestartet" >> $LOG echo "====================" >> $LOG /usr/local/bin/owncloudcmd --non-interactive -n $LOCAL $SERVER/remote.php/webdav/ >> $LOG 2>&1 echo "====================" >> $LOG date >> $LOG echo "ownCloud-Sync beendet" >> $LOG echo "====================" >> $LOG
Diese Datei machen wir dann ausführbar und fügen einen Eintrag in der crontab
hinzu.
pi@raspi ~ $ chmod +x /home/pi/owncloud-sync.sh pi@raspi ~ $ crontab -e no crontab for pi - using an empty one crontab: installing new crontab pi@raspi ~ $ crontab -l # m h dom mon dow command 0 4 * * * /home/pi/owncloud-sync.sh &
Hier als Beispiel wird die Synchronisation jeden Tag nachts um 4 Uhr gestartet.
Das Ergebnis der Synchronisation kann jederzeit in der Log-Datei /var/log/owncloud-sync.log
eingesehen werden.
3. Sep. 2017 um 21:34
Hallo Peter,
ich habe heute versucht, mit deiner Anleitung den owncloud-client auf meinem Raspberry Pi Model 3 B zu installieren, aber leider scheitere ich daran…
Ich verwende das “frisch” releaste Betriebssystem Raspian stretch lite (da ich kein grafisches Interface haben möchte) von hier: https://www.raspberrypi.org/downloads/raspbian/
Beim Herunterladen der Pakete am Anfang habe ich folgende Fehlermeldung bekommen:
Was aber glaube ich nicht so kritisch ist, also habe ich weitergemacht (musste zwischendurch noch git und cmake nachinstallieren). Hier bin ich dann aber hängengeblieben:
Wobei ich mit sudo apt-get install sqlite3 schon sqlite3 nachinstalliert habe (aber immer noch die Fehlermeldung bekomme).
Kannst du mir helfen?
Viele Grüße,
Jonas
4. Sep. 2017 um 12:56
Hallo Jonas,
es gab inzwischen offensichtlich einige Änderungen an den Abhängigkeiten für den ownCloud-Client. Ich habe die Anleitung oben jetzt angepasst und erfolgreich mit einem frisch installierten Raspbian stretch lite getestet.
26. Sep. 2017 um 14:31
Hi Peter,
sorry, dass ich jetzt erst schreibe, habe es ausprobiert und jetzt funktioniert es! Vielen Dank!
5. Dez. 2017 um 15:11
Hallo Peter,
danke für diese schöne Anleitung.
Beim cmake beschwert sich mein Raspberry allerdings, dass ihm die OpenSSL-Dev-Files fehlen, du solltest beim apt-get install noch libssl-dev hinzufügen.
Viele Grüße,
Michael
5. Dez. 2017 um 16:38
Hallo Michael,
vielen Dank für den Hinweis! Ich habe es oben angepasst.
27. Dez. 2017 um 16:51
Hallo Peter,
hast Du ein link auf eine bereits kompilierte Fassung? Das Kompilieren (bzw. das Interpretieren der Fehlermeldungen) ist noch jenseits meiner Fähigkeiten. Die Verson von gripon erzeugt bei mir den libqtkeychain0 Fehler, über den Jonas schon berichtet hat. Auf meinem alten Raspi 2 mit jessie hat das noch funktioniert. Auf dem neuen 3er mit strech nicht mehr.
LG Olaf
27. Dez. 2017 um 21:14
Hallo Olaf,
ich habe die Anleitung oben angepasst, dass Version 2.3.4 installiert wird. Alle neueren Versionen (ab 2.4 vom Dezember 2017) benötigen eine aktuellere Version von QT, als in den Paketquellen von Raspbian enthalten ist.
Damit sollte sich der ownCloud-Client jetzt problemlos wie oben beschrieben kompilieren lassen. 🙂
23. Mrz. 2018 um 17:30
Vielen Dank! Sehe es leider erst jetzt (dachte ich werde über eMail benachrichtigt 😉 Meine Lösung war : Den alten Raspi verwenden. …
LG Olaf
8. Apr. 2018 um 18:06
Ist jetzt nicht wirklich direkt zum Tutorial (super geschrieben btw., hat mir sehr geholfen 😀 ), aber kannst du mir vllt noch sagen, wie man –unsyncedfolders richtig verwendet, bzw. wie die liste auszusehen hat?
11. Apr. 2018 um 11:58
Hallo Jack,
um lokale Dateien und Verzeichnisse vom Sync auszuschließen verwende ich `–exclude /home/pi/owncloud-exclude.txt`. In dieser Datei stehen dann die zu ignorierenden Dateien und Verzeichnisse aufgelistet, je ein Eintrag pro Zeile mit relativen Pfadangaben ausgehend vom synchronisierten Verzeichnis.
`–unsyncedfolders` sollte ähnlich funktionieren, wobei jedoch die angegebenen Dateien bzw. Verzeichnisse dann nicht vom Server heruntergeladen werden.
31. Jul. 2018 um 17:50
Hallo,
das Tutorial ist wirklich sehr gut, und hilft mir ebenfalls bei meinem kleinen Projekt, aber bei mir tritt ein etwas nerviges Problem aus. Ich habe das Script wie du ebenfalls in den Crontab gepackt, jedoch synchronisiert er dann meine Ordner nicht, im Log finde ich dann “Authentication failed”. Das liegt dann ja vermutlich an der ~/.netrc Datei, wenn das Script aber normal meinerseits gestartet wird, läuft alles einwandfrei. Was kann man da tun?
Gruß Marcus
31. Jul. 2018 um 19:06
Hallo Marcus,
ich vermute er findet die `~/.netrc` nicht, da `$HOME` vom Cron machmal nicht richtig gesetzt wird.
Ändere mal den Cronjob zu
Damit wird `$HOME` dann extra festgelegt und er sollte die Datei finden.
8. Sep. 2018 um 14:07
Hallo Peter,
erst einmal vielen Dank für die Anleitung.
Es hat auch bisher alles wunderbar geklappt. Leider habe ich jetzt das Problem, dass ich über den Desktop-Client das zu synchronisierende Verzeichnis auswählen möchte und die Rückmeldung erhalte, dass keien Schreibrechte für das Verzeichnis verfügbar sind.
sudo chmod 777 -R blieb leider bisher erfolglos.
Hättest du vielleicht eine Idee, wie ich dieses Problem beheben könnte?
Gruß Alex
10. Sep. 2018 um 8:59
Hallo Alex,
gehört das Verzeichnis dem richtigen Nutzer? (pi)
Falls nicht kannst du mit `sudo chown -R pi:pi verzeichnis` den Eigentümer festlegen.
Kannst du denn manuell in dem Verzeichnis Dateien und Ordner erstellen?
26. Dez. 2018 um 21:10
Hallo Peter,
habe es auch versucht. Soweit so gut, bis zum Schluss die Fehlermeldung “owncloudcmd: error while loading shared libraries: libowncloudsync.so.0: cannot open shared object file: No such file or directory” auftaucht.
Die Eingabe der Zeile “LD_… -v” wird mit “owncloudcmd version 2.3.4” quittiert. Doch owncloud läßt scih nicht starten, gleiche Fehlermeldung wie oben. Auch der Eintrag in die .bashrc bringt keine Abhilfe.
Was kann ich noch tun (bin absoluter Linux Neuling)?
Vielen Dank
Tim