Syncthing einrichten: unlimitierte private Dropbox - Autostart
Auf der Suche nach einer Alternative zu Dropbox, bin ich auf das Tool Syncthing gestoßen. Mit Syncthing ist es möglich bestimmte Ordner mit anderen über das Internet zu teilen, z.B. auch als Backup. Im Gegensatz zu Dropbox, Google Drive oder OneDrive werden die Daten beim synchronisieren nicht auf einen zentralen Server kopiert, sondern direkt von einem Gerät zum anderen (P2P), ähnlich BitTorrent. Die Daten bleiben auf den verwendeten Rechnern und werden nicht bei einem Cloudanbieter abgelegt. Das Datenlimit für die Synchronisation wird somit nur von der Festplattengröße und der Netzwerkbandbreite limitiert. Im LAN, also im selben lokalen Netzwerk, werden die Daten direkt von einem Computer zum anderen synchronisiert. Sind die Computer über das Internet verbunden, verwendet Syncthing für den Verbindungsaufbau einen Verbindungsserver im Internet.
Jedes Gerät hilft den anderen die eingestellten Ordner synchron zu halten.
Ist die Synchronisation einmal eingerichtet, funktioniert diese sehr stabil. Da die Synchronisation auf beiden Gegenstellen eingerichtet werden muss, ist das Tool nicht so einfach zu bedienen und hat prinzipiell einen anderen Einsatzzweck als Dropbox. Wer aber große Datenmengen auf mehreren Geräten zur Verfügung haben will, ohne diese aus der Hand zu geben, ist bei Syncthing an der richtigen Adresse. Perfekt, zum Beispiel auch um Backups auf ein anderes Gerät im Internet zu übertragen.
Installation
Unter Windows oder Linux wird Syncthing nicht installiert, sondern einfach gestartet:
Die Bedienung erfolgt über den im Hintergrund gestarteten Webserver: http://localhost:8080
Um Syncthing automatisch zu starten (Autostart) kann eine der folgenden Varianten verwendet werden:
Programme Autostart - beim Anmelden - Windows 10
Geräte koppeln
Beim ersten Start wird eine eindeutige ID erzeugt. Die ID wird verwendet um Geräte miteinander zu verbinden. Mittels "ID anzeigen" kann die ID des Gerätes angezeigt werden.
Wenn wir Syncthing jetzt auf einem 2ten Gerät starten, können wir das erste Geräte verbinden, indem wir die ID des ersten Gerätes hinzufügen:
Die Verbindung muss zusätzlich am ersten Gerät bestätigt werden:
Ordner freigeben
Nachdem wir 2 Geräte miteinander verbunden haben, können wir die eigentliche Synchronisation einrichten.
Dazu gebe ich auf einem der 2 Geräte einen Ordner frei:
Für den Ordner müssen wir jetzt noch eine eindeutige ID vergeben (diese kann später nicht mehr verändert werden) und den Pfad zum Ordner:
Durch "Teile mit diesem Geräten" kann bestimmt werden, mit wem der Ordner geteilt wird.
Die angegebenen Geräte bekommen dann eine Einladung für die Synchronisation:
Am anderen Gerät kommt der selbe Dialog, wie am ersten Gerät. Die Verzeichnis ID darf an dieser Stelle nicht geändert werden, da diese für die Synchronisation verwendet wird.
Nach Angabe des Pfades und Speichern der Einstellungen, werden die Ordner synchronisiert.
Android
Die Android App hat mich etwas Zeit gekostet:
In der Syncthing Version 10.21 und Android 4.4 ist es nicht möglich in einen beliebigen Ordern auf der SD Karte zu schreiben. Siehe: https://github.com/syncthing/syncthing/issues/1126
Nachdem ich per USB eine Datei mit ".stfolder" in dem Ordner, konnte ich diesen aber freigeben (Einstellung: "Keine Veränderungen zulassen")
Ich hab in den Einstellungen "Synchronisierung nur mit angeschlossenem Ladegerät" aktiviert, da die App sehr ressourcen hungrig ist und meine Akkulaufzeit erheblich beeinträchtigen wurde.
Autostart
Damit Syncthing automatisch im Hintergrund ausgeführt werden kann, müssen wir einen Startjob einrichten:
Windows - Syncthing automatisch starten
In Windows kann Syncthing automatisch in der Aufgabenplanung gestartet werden:
Argumente: -no-console -no-browser, da ansonsten bei jedem Systemstart die Eingabeaufforderung und ein Browserfenster geladen wird.
Ubuntu Linux - Syncthing automatisch starten
siehe https://gist.github.com/arudmin/5a13e9105814c3f568ec
#!/bin/sh
### BEGIN INIT INFO
# Provides: syncthing
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Multi-user daemonized version of syncthing.
# Description: Starts the syncthing daemon for all registered users.
### END INIT INFO
# Replace with users you want to run syncthing clients for
syncthing_USERS="pi"
DAEMON=/etc/syncthing/syncthing
startd() {
for stuser in $syncthing_USERS; do
HOMEDIR=$(getent passwd $stuser | awk -F: '{print $6}')
config=$HOMEDIR/.config/syncthing/config.xml
if [ -f $config ]; then
echo "Starting syncthing for $stuser"
start-stop-daemon -b -o -c $stuser -S -u $stuser -x $DAEMON
else
echo "Couldn't start syncthing for $stuser (no $config found)"
fi
done
}
stopd() {
for stuser in $syncthing_USERS; do
dbpid=$(pgrep -fu $stuser $DAEMON)
if [ ! -z "$dbpid" ]; then
echo "Stopping syncthing for $stuser"
start-stop-daemon -o -c $stuser -K -u $stuser -x $DAEMON
fi
done
}
status() {
for stuser in $syncthing_USERS; do
dbpid=$(pgrep -fu $stuser $DAEMON)
if [ -z "$dbpid" ]; then
echo "syncthing for USER $stuser: not running."
else
echo "syncthing for USER $stuser: running (pid $dbpid)"
fi
done
}
case "$1" in
start) startd
;;
stop) stopd
;;
restart|reload|force-reload) stopd && startd
;;
status) status
;;
*) echo "Usage: /etc/init.d/syncthing {start|stop|reload|force-reload|restart|status}"
exit 1
;;
esac
exit 0
sudo chmod +x /etc/init.d/syncthing
sudo update-rc.d syncthing defaults
sudo reboot
alternatives Setup: Docker
sudo docker pull syncthing/syncthing
sudo docker run --network=host \
-v /syncthing:/var/syncthing \
syncthing/syncthing:latest --always
{{percentage}} % positiv
DANKE für deine Bewertung!
Fragen / Kommentare
(sortiert nach Bewertung / Datum) [alle Kommentare(am besten bewertete zuerst)]
User: Andreas Hallo, ja mir fällt etwas zu dem Thema ein. :-) Bei mir läuft das perfekt auf dem Cubietruck sowie auf dem Desktop-PC mit Linux Mint. Auf dem Desktop-Rechner mit Windows 7 64B läuft es, aber aus welchem Grund auch immer kann ich keine Ordner syncen, die wie z.B. der Thunderbird-Profile-Ordner normalen Usern nicht zugänglich sind. Solche Ordner werden dann von syncthing mit 0 Byte angezeigt, angeblich sogar synchronisiert, auf dem Cubietruck, hat der Ordner dann aber auch nur 0 Byte. Muss syncthing als Admin gestartet werden? Wie ist das mit der Schreibweise der Windowsverzeichnispfade? Linuxlike / oder windooftypisches \ ?? Auf dem Screenshot sieht das ja eher nach Linuxpfad aus mit /media... usw. Nunja, prinzipiell ein geniales Stück Software, unter Win wird das Problem wohl zwischen Rückenlehne und Tastatur verursacht. Weiter auf der Pirsch durch die Weiten auf der Suche nach der Lösung... Grüße Andreas