[[Vorlage(Getestet, focal, jammy, noble)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(syncthing-logo-horizontal.png, 72, align=left)]] Mit [https://syncthing.net/ Syncthing] {en} können Verzeichnisse und Dateien über verschiedene Geräte im lokalen Netzwerk synchronisiert werden. Es läuft als [:Dienste:Dienst] im Hintergrund und wird über eine Web-Schnittstelle mit dem Browser bedient. Zusätzlich sind GUI-Programme zur Verwaltung des Dienstes verfügbar. Syncthing ist für viele verschiedene Betriebssysteme und Plattformen verfügbar: [https://syncthing.net/downloads/] {dl} * Linux (x86, ARM, MIPS, etc.) * Windows * FreeBSD, OpenBSD, NetBSD, etc. * macOS * Solaris, Illumos * Android * GrapheneOS (hier: Syncthing-App über Aurora-Store installiert) Für die genannten Systeme ist mindestens die Basisvariante (Dienst mit Web-Schnittstelle) verfügbar, GUI-Programme und andere Zusatzwerkzeuge sind nicht überall vorhanden. Zwischen verschiedenen Systemen und Architekturen kann uneingeschränkt synchronisiert werden, wenn auf beiden Seiten die gleiche Version von Syncthing installiert ist. = Installation = Syncthing kann direkt aus den Quellen installiert werden [1]. {{{#!vorlage Paketinstallation syncthing, universe }}} Hier ist nur der Basisdienst enthalten, der zur Benutzung ausreichend ist. Gerade wenn Syncthing über das Internet verwendet wird, kann es sinnvoll sein, das PPA zu nutzten. Denn Pakete aus universe werden nicht unbedingt mit Sicherheitsupdates versorgt. == Installation über Fremdquelle == {{{#!vorlage Warnung Zusätzliche [:Fremdquellen:] können das System gefährden. }}} Eine aktuellere Version (als in den Paketquellen) kann man über die offizielle Anleitung von [https://apt.syncthing.net/ syncthing.net] {en} installieren: {{{#!vorlage Befehl # PGP-Schlüssel des Repositorys einfügen sudo curl -s -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg }}} {{{#!vorlage Befehl # Paketquelle hinzufügen echo "deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list }}} {{{#!vorlage Befehl # Bevorzugung von Syncthing-Paketen ("Pinning") printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing }}} {{{#!vorlage Befehl sudo apt update && sudo apt install syncthing }}} = Bedienung = Gestartet wird der Dienst z.B. mit dem Terminal-Befehl: {{{#!vorlage Befehl syncthing }}} Soll Syncthing immer automatisch im Hintergrund laufen, so kann man den Befehl in [:Autostart:] anlegen. = Beispiele = Hier wird kurz gezeigt, wie man einen Raspberry Pi als Backup-Server einrichtet (mehr Informationen dazu findet man z.B. in der Zeitschrift ct' 14/21 im Artikel "Raspberry Pi als zentralen Backup-Server mit Syncthing einrichten"). Damit lassen sich z.B. Fotos im Speicher eines Mobiltelefons und ausgewählte Dateien eines Desktop-PCs auf einer externen Festplatte, welche am Raspberry Pi angeschlossen ist, synchronisieren. == Synchronisation des /home-Verzeichnisses eines Rechners auf einen Raspberry Pi == [[Bild(synthing_1.18_01.png, 300, align=right)]] Dazu wird auf dem PC und einem Raspberry Pi zunächst Syncthing (mit der Fremdquelle) installiert. Der Raspberry Pi und der Rechner müssen im selben LAN bzw. WLAN sein. Ob der Dienst tatsächlich auf dem Rechner läuft, kann man in einem Browser-Fenster (dieses Rechners) unter `127.0.0.1:8384` nachschauen: Zur erstmaligen Einrichtung wird der Raspberry Pi an einen Monitor angeschlossen, um grafisch im Browser arbeiten zu können. Damit Syncthing bei jedem Neustart des Raspberry Pis automatisch gestartet wird, kann man mit dem Befehl: {{{#!vorlage Befehl crontab -e }}} die Datei um die folgende Zeile erweitern: {{{ @reboot syncthing }}} Um den Synchronisierungsdienst nutzen zu können, müssen sich die beteiligten Geräte "kennen". Dazu öffnet man am Rechner (= Quelle) im Browserfenster die Seite `127.0.0.1:8384` und wählt unter ''"Externe Geräte"'' die Schaltfläche ''"+ Gerät hinzufügen"''. Wenn der Raspberry Pi (= Ziel) schon im gleichen Netz mit Syncthing läuft, so wird er (ggf. nach kurzer Zeit) dort angezeigt. Nun gibt man ihm noch einen gewünschten Namen (im Bild: "raspi"). Nach einiger Zeit bekommt man anschließend in Syncthing auf dem Raspberry Pi eine Meldung; der PC, von dem Daten synchronisiert werden sollen, kann nun genauso mit "Gerät hinzufügen" ausgewählt werden. [[Bild(syncthing_1.18_02.png, 300, align=right)]] Zur Einrichtung der Synchronisierung werden auf dem Rechner mit der Option ''"+ Ordner hinzufügen"'' die gewünschten Ordner ausgewählt, hier das gesamte '''/home/BENUTZER'''. Unter ''"Dateiversionierung"'' hat man verschiedene Möglichkeiten, hier wurde im Beispiel die ''"Einfache Dateiversionierung"'' mit ''"Versionen erhalten" -> 3'' gewählt, was einen brauchbaren Kompromiss zwischen Sicherheit und benötigtem Speicherplatz darstellt. Evtl. ist nach dem ersten Scan notwendig, am PC unter ''"Externe Geräte > Bearbeiten > Teilen > Geteilte Ordner"'' zu kontrollieren, ob der zu teilende Ordner wirklich mit Häkchen ausgewählt ist. Da eine übliche SD-Karte eines Raspberry Pis nicht besonders ausfallsicher ist, werden die Daten besser auf einer externen Festplatte gespeichert, welche am "raspi" an einem USB-Anschluss hängt (bevorzugt eine SSD, die eine geringe Leistungsaufnahme im Leerlauf hat). Daher muss der Ordnerpfad auf dem "raspi" auch angepasst werden, z.B. auf '''/media/home_BENUTZER'''. Falls man Syncthing für mehrere Benutzer oder Geräte nehmen möchte, empfiehlt es sich ggf. vorher die externe Festplatte mit [:GParted:] zu partitionieren. Weiterhin muss dann eine Partition mit geeigneten Rechten ausgestattet werden, z.B. mit {{{#!vorlage Befehl sudo chmod 777 /media/externe_Festplatte }}} ('''Achtung:''' Falls man hier einen falschen Pfad, wie z.B. `/home/pi/media/...` angibt, dann wird auf der SD-Karte -statt auf der ext. Festplatte- dieser Ordner neu angelegt, welcher ggf. schnell voll läuft! Sollte die Synchronisierung nicht wie gewünscht starten und die Zuweisung der Ordner ggf. nicht stimmen: Den Sicherungs-Ordner auf dem Raspberry Pi löschen, den Pi neu starten und nochmal neu beginnen.) Auf dem zu sichernden Rechner kann man im Syncthing-Menu neben der ''"Dateiversionierung"'' auch ein ''"Ignoriermuster"'' einstellen, um die eigenen Synchronisierungswünsche nach Bedarf anzupassen. Im Beispiel hier wurde gewählt: {{{ .* # lässt alle versteckten Dateien weg !.thunderbird # Thunderbird-Ordner wird gesichert Downloads # Download-Ordner wird nicht gesichert }}} Später im Normalbetrieb kann man per ssh auf den "raspi" zugreifen und sich über [:htop:] bzw. [:top:] anzeigen lassen, ob der Dienst syncthing läuft und ggf. die gespeicherten Daten mit [:ls:] kontrollieren. Sollte sich unbeabsichtigt (z.B. An- und Ausstecken) eine externe Festplatte nicht mehr mounten, so kann es notwendig sein, diese erneut in die Datei [:fstab: /ets/fstab] einzutragen. {{{#!vorlage Hinweis Ein so eingerichtetes "Backup" des Rechners ersetzt '''kein''' richtiges [:Backup:]. Selbst wenn der Raspberry Pi in einem anderen Stockwerk steht: Eine Überspannung im Haus oder ein Brand kann alle Daten unwiderruflich zerstören. Trotzdem kann eine solche Einrichtung ein schon bestehendes Backup-System sinnvoll ergänzen, gerade wenn die Datensicherung nur in größeren Zeitabständen ausgeführt wird. }}} [[Bild(syncthing_1.18_03.png, 200, align=right)]] == Synchronisation von Bildern & Videos eines Android-Telefons auf einen Raspberry Pi == Damit kann man z.B. alle Bilder und Videos, die mit einem Mobiltelefon gemacht werden, zu Hause im WLAN automatisch auf den Raspberry Pi synchronisieren lassen, ohne dass dazu später noch irgendwelche Befehle oder Aufrufe notwendig sind. Auf dem hier benutzten Android-Telefon heißt der Ordner '''Kamera'''. Mit weiteren Einstellungen lassen sich ggf. auch andere Dateien des Mobilgeräts sichern, falls man das für notwendig hält. Die Einrichtung erfolgt analog der o.g. Darstellung. Ein bereits eingerichteter Raspberry Pi wird erkannt, man muss jedoch den "raspi" in der Telefon-App aktivieren. Man sollte die Synchronisierung der Daten in der Android-App anpassen: unter ''"Einstellungen -> Betriebsbedingungen -> bei WLAN-Verbindung ausführen"'' aktivieren (mobile Daten können evtl. hohe Kosten verursachen, falls man keine Flatrate besitzt). Weiterhin kann es evtl. hilfreich sein, wenn man auf dem Raspberry Pi für den zu sichernden Android-Ordner unter ''"Einstellungen -> Erweitert -> Zugriffsrechte"'' aktiviert (siehe dortige Hinweise). Bei Problemen hilft es manchmal den zu sichernden Ordner vom Mobiltelefon neu anzulegen. Dazu auf dem Raspberry Pi zuerst den betreffenden Ordner löschen. Wenn man nun auf dem Mobiltelefon im Syncthing-Menu "Neustart" wählt, wird die neue Anfrage auf dem Raspberry Pi im Browser-Fenster direkt angezeigt und kann mit ok bestätigt werden. Dann beginnt die Synchronisation von vorne. == Raspberry Pi über "Raspberry Pi Connect" == Es bietet sich an, bei einem Raspberry Pi 4 oder neuer bei der Ersteinrichtung mit Montitor gleich auch [https://www.raspberrypi.com/news/raspberry-pi-connect/ raspberry-pi-connect] {en} zu installieren. Dann kann man später die Funktion von Syncthing über den ferngesteuerten Desktop besser kontrollieren oder verändern, als wenn man über ssh arbeitet. Einen lesenwerten Artikel findet man auch bei [https://kofler.info/screen-sharing-mit-raspberry-pi-connect/ kofler.info] {de}. Mit Firefox 126 ließ sich unter 22.04 keine Verbindung zum Raspberry Pi herstellen, mit Chromium dagegen funktionierte es (Stand: Mai 2024). = Probleme = == Android-App wird ab 2025 nicht mehr weiterentwickelt== Laut dieser Meldung [https://news.itsfoss.com/syncthing-android-app-no-more/ itsfoss 23.10.2024]{en} wird die Android-App leider nicht mehr weiterentwickelt. Dort wird [https://f-droid.org/en/packages/com.github.catfriend1.syncthingandroid/?ref=news.itsfoss.com Syncthing-Fork]{en} als mögliche Alternative genannt. == Synchronisierungs-Datenrate== In einigen Foreneinträgen wurde mitunter die langsame Synchronisierungs-Datenrate bemängelt. Selbst unter Berücksichtung folgender [https://docs.syncthing.net/users/tuning.html Tuning-Optionen] zeigt ein neu eingerichteter Raspberry Pi 4b, der mit per LAN verbunden ist, lediglich Downloadraten im Bereich von ca. 5 bis 25 KiB/s (Stand: 1.6.2024). '''Stand 2025: Mit einem neu installierten Raspberry 4b wurden mit der installierten Syncthing-Version 1.29.6 eine stabile Downloadrate von 11,2 MiB/s beobachtet (per LAN verbunden, ohne Tuning-Optionen). ''' Änderungen der Options (ab Zeile 164 auf dem Pi) in der Datei `.config/syncthing/config.xml`: {{{ -1 false large }}} Das liegt an der begrenzten CPU-Leistung des Raspberry Pis, ggf. sind neuere Geräte da spürbar schneller. Letztlich dauert die allererste Synchronisierung eines Geräts mit dem Raspberry Pi entsprechend lang. Für den späteren Betrieb spielt es für viele Anwender keine große Rolle mehr, wenn nur wenige Dateien nach dem Bearbeiten oder neue Fotos von einem Telefon synchronisiert werden. = Links = * [https://docs.syncthing.net/ Dokumentation] {en} - Offizielle Dokumentation des Projekts (teilweise mit Erklärungsvideos) * [https://docs.syncthing.net/users/tuning.html Tuning-Optionen] {en} - Offizielle Dokumentation * [https://pimylifeup.com/raspberry-pi-syncthing/ raspberry-pi-syncthing] {en} - ausführlichere Anleitung, mehr Bilder * [:Cloud-Dienste:] #tag: Backup, Sicherheitskopie, Synchronisierung