(0)
Artikel
bewerten
(100% positiv)
(11)

Syncthing einrichten: unlimitierte private Dropbox - Autostart

P2P Synchronisation von Daten

Inhalt dieses Artikels:

    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össe 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.

     

    Syncthing kann beliebige Ordner, über das lokale LAN oder übers Internet, auf beliebig viele Geräte übertragen. Jedes Gerät hilft den anderen die eingestellten Ordner synchron zu halten.

     

    Die Software ist noch relativ jung, die Bedienung ist noch nicht ganz fehlerfrei, es wird aber laufend daran gearbeitet. 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ächtigt 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
    letzte Änderung dieses Artikels: 18.04.2017 15:16



    Feedback: