[[Vorlage(Getestet, focal, jammy)]] {{{#!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 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 }}} 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). = Links = * [https://docs.syncthing.net/ Dokumentation] {en} - Offizielle Dokumentation des Projekts (teilweise mit Erklärungsvideos) * [:Cloud-Dienste:] #tag: Backup, Sicherheitskopie, Synchronisierung