ubuntuusers.de

FreeFileSync

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

FFS-Icon.png FreeFileSync 🇬🇧 ist ein freies Programm zur Synchronisation (Datenabgleich) von zwei Partitionen oder Verzeichnissen. Es ist mit identischer graphischer Oberfläche für verschiedene Plattformen (Linux, Windows) verfügbar.

Vorzüge von FreeFileSync waren schon immer die konsequente Beschränkung auf das Wesentliche, die sehr übersichtlich gestaltete Oberfläche und die besonders einfache, intuitive Bedienung. Deshalb wird FreeFileSync sehr gern im persönlichen Bereich eingesetzt, wenn ohne großen Aufwand schnell ein paar Ordner zu synchronisieren sind. Im Gegensatz zu den Kommandozeilen-Klassikern rsync und Unison kommt man mit dem Programm auch dann gut zurecht, wenn man es nicht regelmäßig, sondern nur sporadisch benutzt.

Aber auch sehr große Datenmengen lassen sich mit FreeFileSync problemlos und schnell synchronisieren. FreeFileSync kennt keine Begrenzung von Größe oder Anzahl von Dateien. Neuere Features wie z.B. die native Implementierung von SFTP mit optionaler Datenkompression für langsamere Netzwerke machen das Programm inzwischen auch für professionelle Anwendungen durchaus konkurrenzfähig.

Eine Besonderheit ist das bei FreeFileSync mitgelieferte eigenständige Programm RealtimeSync, mit dem sich Dateien, Ordner oder Partitionen im Hintergrund ständig auf Veränderungen hin beobachten lassen. Man kann dann automatisch bestimmte Aufgaben wie z.B. eine Synchronisation ausführen lassen.

Installation

manuell

FreeFileSync ist nicht in den offiziellen Paketquellen enthalten. Ab der Version 11.8 (3.3.2021) kann es über eine Setup-Datei installiert werden. Dazu lädt man von der Projektseite ⮷ die für Linux vorgesehene Datei FreeFileSync_VERSIONSNUMMER_Linux.tar.gz herunter und entpackt sie. Die *.run-Datei kann entweder via Terminal oder im Dateimanger aufgerufen werden. Es folgen Fragen zur Zustimmung der Lizenzvereinbarungen und über den gewünschten Installationsort. Vorgeschlagen wird wahlweise eine Installation für alle User in /opt/FreefileSync oder nur für den aktuellen Benutzer in ~/FreeFileSync. Im Rahmen der Installation werden Menü-Einträge vorgenommen und optional Shortcuts auf dem Desktop eingerichtet, über die das Programm dann aufgerufen werden kann.

Hinweis!

Fremdsoftware kann das System gefährden.

Quellcode kompilieren

Der Quellcode steht auf der Projektseite ⮷ in einem Zip-Archiv zur Verfügung.

Flatpak

Es gibt eine über Flatpak erhältliche Version von FreeFileSync, welche aber nicht offiziell vom Programmierer unterstützt wird. Dieser Wikiartikel bezieht sich auf die manuell installatierte Version, wie im Abschnitt manuelle Installation beschrieben.

Update

Sofern man nicht die unten erwähnte Spendenversion nutzt, prüft das Programm von Zeit zu Zeit nach neuen Versionen. Gibt es eine solche, dann erscheint ein Fenster mit den Änderungen und der Downloadmöglichkeit der neuen Version. Diese wird wie unter Installation beschrieben gestartet. Dabei muss man das Verzeichnis der bisherigen Installtion angeben. Dadurch wird der alte Installtionordner gelöscht und die neue Version installiert. Die Konfigurationsdateien vom Programm bleiben unverändert im Homeverzeichnis bestehen.

Anwendung

freefilesync-oberflaeche.png
Startoberfläche von FreeFileSync

Vergleichen

Vergleichsmodus

FreeFileSync kann Dateien auf drei Arten miteinander vergleichen:

  1. nach Datum und Dateigröße

  2. nach dem Dateiinhalt

  3. nach Dateigröße

Befinden sich die zu vergleichenden Dateien in gleichen oder vergleichbaren modernen Dateisystemen (z.B. ext3/4, NTFS), so ist der Vergleich nach Datum und Dateigröße recht sicher und ziemlich schnell. Sommer- und Winterzeit werden dabei automatisch berücksichtigt, und verschiedene Zeitzonen spielen keine Rolle, da in diesen Dateisystemen die Zeitstempel ortsunabhängig in der Koordinierten Weltzeit (UTC) festgelegt sind. Beim Vergleich mit älteren Dateisystemen (z.B. FAT32), mit Smartphones oder über Netzwerk-Dienste können aber Datums- und Uhrzeit-Angaben unzuverlässig sein. Für diesen Fall gibt es auch die (zweifellos weniger sichere) Möglichkeit des Vergleichs nur nach der Dateigröße.

Am sichersten, dafür aber bedeutend langsamer, ist der ebenfalls mögliche Vergleich nach dem Dateiinhalt. Dieser Modus eignet sich vor allem für Konsistenzprüfungen.

Filter

Über die Filter-Funktion können Dateien in den Vergleich bzw. die Synchronisation einbezogen oder aber von dieser ausgeschlossen werden. Die Filterung erfolgt ausschließlich über den Dateinamen bzw. Zugriffspfad. Neben Dateiendungen (Suffixen) können z.B. auch Ordnernamen als Kriterium gelten. Wildcards sind möglich. Auch Filter können sowohl generell als auch für einzelne Verzeichnispaare festgelegt werden.

Außerdem kann man festlegen, wie mit symbolischen Links (Symlinks) verfahren werden soll. FreeFileSync kann diese ignorieren, sie direkt vergleichen oder auch ihnen folgen.

freefilesync-synchronisation.png
Synchronisationseinstellungen von FreeFileSync

Synchronisieren

Vorgehensweisen

Für die Synchronisation bietet FreeFileSync drei Vorgehensweisen an:

  1. "← Zwei Wege →": Hier erfolgt die Synchronisation bidirektional, d.h. die jeweils neuere Datei wird für beide Seiten übernommen. Konflikte (auf beiden Seiten veränderte Dateien oder verschiedene Dateilängen, aber gleicher Zeitstempel) und Löschungen werden automatisch erkannt.

  2. "Spiegeln →>": Hierbei wird das linke Verzeichnis komplett auf das rechte übertragen. Dabei werden Dateien im rechten Verzeichnis auch dann überschrieben, wenn sie neuer sind als die gleichnamigen Dateien im linken Verzeichnis. Dateien, die links nicht vorhanden sind, werden rechts gelöscht.

  3. "Aktualisieren →": Auch hier werden Dateien grundsätzlich nur von links nach rechts kopiert. Im Gegensatz zum Spiegeln werden Dateien aber nur dann übertragen, wenn sie neu oder aktueller sind als die rechts vorhandenen. Dateien, die links nicht vorhanden oder älter sind, bleiben rechts unverändert erhalten.

  4. "Eigene": Hier kann man eigene Synchronisationsregeln einstellen.

Die Synchronisationsart kann generell oder auch für einzelne Verzeichnispaare festgelegt werden. Überschriebene oder entfernte Dateien können wahlweise gelöscht oder in den Papierkorb bzw. in einen beliebigen Ordner eigener Wahl verschoben werden.

Fehlerbehandlung

Des Weiteren kann eingestellt werden, wie FreeFileSync verfahren soll, wenn ein Fehler vorliegt (z.B. eine Datei/Verzeichnis nicht synchronisiert werden kann oder nicht genügend Speicherplatz vorhanden ist) und ob eine Aktion nach Beendigung der Synchronisation erfolgen soll. Während des nun folgenden Synchronisationsprozesses wird ein Aktivitätenfenster (Verlaufsdialog) für den aktuellen Stand der Synchronisation angezeigt.

Zeitstempel-Probleme

freefilesync-filter.png
Filtereinstellungen von FreeFileSync

Beim Kopieren von Dateien und Ordnern zwischen Dateisystemen mit einer Linux- bzw. UNIX-Rechteverwaltung bleiben die Dateiattribute (Besitz- und Zugriffsrechte) sowie Zeitstempel unverändert. Dies gilt gleichermaßen auch für NTFS-Partitionen, falls diese mit den Optionen permissions und acl eingebunden (gemountet) sind (siehe dazu NTFS-3G). Bei einer Synchronisation braucht man sich deshalb in diesem Fall keine Gedanken zu machen.

Anders ist es z.B. bei ohne diese Optionen eingebundenen NTFS- und bei FAT-Partitionen. Hier kann es durchaus geschehen, das sich beim Kopieren der (scheinbare) Besitzer ändert. Dann gilt die Datei aber als "neu angelegt", und sie erhält einen neuen, von der Originaldatei abweichenden Zeitstempel. Die Kopie ist dann immer neuer als das Original. Dies ist unerwünscht und kann zudem bei bidirektionaler Synchronisation zu einem völlig unsinnigen Hin- und Herkopieren führen, wenn die Dateien nach Datum und Uhrzeit verglichen werden.

Die gleichen Probleme können auch bei der Synchronisation über Netzwerk-Dienste auftreten, wenn diese (wie z.B. Samba) die Dateiattribute nicht unverändert übertragen.

Netzwerk

Eingebundene ("gemountete") Dateisysteme

Dateivergleiche und Synchronisationen über ein Netzwerk kann FreeFileSync dann durchführen, wenn die jeweiligen Verzeichnisse (Netzwerk-Freigaben) ins lokale Netzwerk eingebunden ("gemountet") sind. Je nach Netzwerk-Dienst (FTP, SFTP, WebDAV, Samba, NFS usw.) ist dies auf verschiedene Arten möglich.

GIO und GVfs

Auf alle Orte, die über GIO/GVfs bzw. KIO ansprechbar sind, kann FreeFileSync auf diese Weise zugreifen. Es kann diese Orte aber nicht selbst einbinden; dies muss vorher über den Dateimanager bzw. mittels gio mount geschehen. Mit der standardmäßig verwendeten Syntax (ftp://..., smb://... usw.) kommt FreeFileSync allerdings nicht zurecht. Hier ist statt dessen der alternative Zugriff mittels FUSE zu verwenden (siehe dazu gio mount).

Beispiel:

für

smb://thinkpad/bilder

wird eingegeben

/run/user/1000/gvfs/smb-share:server=thinkpad,share=bilder

Mit einem Symlink lässt sich dies dann vereinfachen.

Cloud, Tablet und Smartphone

In entsprechender Weise kann FreeFileSync über das GVfs auch mittels WebDAV auf verschiedene Cloud-Dienste (z.B. MagentaCloud) und mittels MTP (über USB) oder ObexFTP (über Bluetooth) auf Smartphones und Tablets zugreifen.

Cloudsymbol.png

Google-Drive, SFTP und FTP

Ohne vorheriges Einbinden (Mounten) kann FreeFileSync direkt auf die Cloud "Google Drive" und über SFTP oder FTP auf andere Geräte zugreifen, auf denen ein entsprechender Server läuft. Hierzu klickt man das Cloud-Symbol rechts neben "Auswählen" an. Dann öffnet sich ein selbsterklärendes Auswahlfenster. Bei der Einstellung "SFTP" sind verschiedene Arten der SSH-Authentifizierung möglich.

Google_Drive.png
Dateiauswahl Google Drive

SFTP.png
Dateiauswahl SFTP

Globale und lokale Einstellungen

Konfiguration und Protokollierung

Beim ersten Aufruf legt FreeFileSync im Heimverzeichnis des eingeloggten Benutzers den Ordner ~/.config/FreeFileSync/ an. In diesem befinden sich die drei Konfigurationsdateien GlobalSettings.xml, LastRun.ffs_gui und LastRun.ffs_real. Beim Verlassen von FreeFileSync werden diese aktualisiert und beim nächsten Start wieder eingelesen. Es handelt sich um gewöhnliche, weitgehend selbsterklärende Textdateien.

Normalerweise wird FreeFileSync über die GUI konfiguriert. Die Datei GlobalSettings.xml enthält jedoch auch Einträge für zusätzliche Optionen, die über die GUI nicht zugänglich sind. Möchte man die Datei deshalb mit einem Editor bearbeiten, so sollte man dies jedoch nur tun, solange FreeFileSync nicht läuft, da sonst die Veränderungen beim Verlassen des Programms wieder überschrieben werden.

Außerdem befindet sich im gleichen Verzeichnis noch ein Ordner Logs, in dem alle Abläufe in einzelnen htlm-Dateien ausführlich protokolliert werden. Da diese mehr Platz beanspruchen als reine Textdateien, empfiehlt es sich, dort von Zeit zu Zeit unnötig gewordene, ältere Protokolle zu löschen.

Außer dem Vergleichsmodus, dem Synchronisationsmodus und den Filtern können noch einige weitere Parameter global eingestellt werden. Wichtig ist z.B. das Verhalten bei symbolischen Verknüpfungen. Im Fall von Platzmangel ist die Einstellung "Löschen vor Kopieren" nützlich. Manche Einstellungen lassen sich außerdem auch lokal für einzelne Verzeichnispaare vornehmen. Solche lokale Einstellungen überdecken dann die entsprechende globale Einstellung.

Die jeweiligen Grundeinstellungen befinden sich in der Datei Globalsettings.xml. Die vom Benutzer vorgenommenen Einstellungen können in einer Textdatei mit dem Suffix ffs_gui abgelegt und aus dieser wieder geladen werden. Der Aufbau dieser Datei ist leicht verständlich. Erfahrene Anwender können sie deshalb auch in einem Editor[4] von Hand bearbeiten.

freefilesync-batchauftrag.png
Batchauftrageinstellungen von FreeFileSync

Batch-Job

Wählt man im Menü des Hauptfensters "Datei → Speichern als Batchauftrag", so öffnet sich ein kleines Fenster zum Erstellen von Batchdateien für die automatische Synchronisation ("Batch-Jobs"). Dieses ist selbsterklärend und verwendet die gleichen Symbole wie das Hauptfenster. Auch in der Batchdatei kann für jedes Verzeichnispaar einzeln festgelegt werden, welche Filter zur Anwendung kommen.

Batch-Jobs werden in Textdateien mit dem Suffix ffs_batch abgelegt und aus diesen zur weiteren Bearbeitung wieder geladen werden. Die Batchdatei ist ganz ähnlich aufgebaut wie die Konfigurations-Datei (*.ffs_gui); es ist darin nur der Abschnitt <GuiConfig> durch den Abschnitt <BatchConfig> ersetzt.

Aufruf über die Kommandozeile

FreeFileSync kann auch mit einer Kommandozeile[5] gestartet werden. Dabei kann entweder eine Konfigurationsdatei *.ffs_gui oder eine Batchdatei *.ffs_batch als Parameter übergeben werden. Im ersten Falle startet FreeFileSync eine GUI mit den entsprechenden Einstellungen und führt sofort den Vergleich durch. Im zweiten Falle wird der Batch-Job wahlweise mit oder ohne Anzeige in der GUI abgearbeitet. Im Modus ohne Anzeige ("Stiller Modus") wird in einem Verzeichnis eigener Wahl kann ein Protokoll (Logdatei) erstellt werden.

# Beispiel (bitte Großbuchstaben beachten):
FreeFileSync Photos.ffs_batch 

Den Aufruf mit Kommandozeile wird man vor allem dann verwenden, wenn man Synchronisationen zeitgesteuert als Cronjob oder eventgesteuert mittels RealtimeSync automatisieren möchte.

Hinweis:

Soll FreeFileSync über die Kommandozeile oder automatisch gestartet werden, empfiehlt es sich, beim Erstellen des Batch-Jobs die Option "Fortschritts-Dialog zeigen" zu deaktivieren und für die Fehlerbehandlung eine der Optionen "Ignorieren" oder "Beenden" zu wählen. FreeFileSync läuft dann im "Stillen Modus", und die Ausführung wird nicht durch Popup-Fenster unterbrochen.

freefilesync-realtimesync.png
RealTimeSync von FreeFileSync

RealtimeSync

Mit zum Lieferumfang von FreeFileSync gehört auch das eigenständige kleine Programm RealtimeSync. Es läuft im Hintergrund und überwacht eine beliebige Anzahl von Programmen oder Ordnern. Treten an diesen irgendwelche Veränderungen auf, wird eine vom Benutzer eingegebene Kommandozeile ausgeführt. RealtimeSync ermöglicht es, als Alternative zum sonst üblichen zeitgesteuerten Backup eine Art automatisches, eventgesteuertes Backup vorzunehmen. Dafür kann, muss aber nicht, FreeFileSync verwendet werden. Auch andere über eine Kommandozeile bedienbare Synchronisationsprogramme sind möglich. Um zu häufige Synchronisationen zu verhindern, kann eine Ruhezeit festgelegt werden.

Die Möglichkeiten von RealtimeSync beschränken sich nicht auf Synchronisation und Backup. So kann man damit z.B. auch beliebige Anwendungsprogramme oder Skripte automatisch ausführen, sobald ein bestimmter externer Datenträger (USB-Stick, DVB-T-Stick) eingesteckt wird.

Wird RealtimeSync über eine Kommandozeile aufgerufen, so kann man den auszuführenden Befehl als Parameter übergeben. Dann werden die beim letzten Aufruf verwendeten Einstellungen wieder angewandt. Man kann aber auch eine komplette Konfiguration (*.ffs_real) oder eine Batch-Datei (*.ffs_batch) übergeben. Diese wird dann automatisch in *.ffs_real konvertiert (d.h. es wird eine ffs_real-Datei erzeugt, die die zu überwachenden Verzeichnisse aus der Datei *.ffs_batch extrahiert und die Datei *.ffs_batch als auszuführende Aktion referenziert). Wird RealtimeSync mit einem Parameter aufgerufen, dann wird es sofort ohne Dialogfenster gestartet.

# Beispiel:
RealtimeSync Dokumente.ffs_real 

RealtimeSync kann in den Autostart eingebunden werden: Dazu sollten die Autostart Programme im Terminal mit

gnome-session-properties 

aufgerufen werden.

Als Pfad für RealtimeSync ist

/Pfad zu Ordner/RealTimeSync '/Pfad zu Ordner/irgendwas.ffs_real' 

anzugeben

Anleitung und Dokumentation

Über "Hilfe → Hilfe anzeigen" oder alternativ duch drücken der F1 Taste wird im Standart-Internetbrowser die Hilfe-Seite des Internetauftritts von FreeFileSync aufgerufen. Dabei werden jeweils Beispiele der einzelnen Bereiche des Programms gezeigt, zudem gibt es noch die Möglichkeit, Video-Tutorials anzuschauen. Auch eine FAQ ist dort vorhanden. Alternativ ist im Programm-Ordner von FreeFileSync eine User Manual.pdf zu finden, welche Inhaltlich mit der Online-Hilfe identisch ist. Die Hilfe ist nur in Englisch verfügbar.

Spendenversion

Bis Juli 2018 wurde FreeFileSync von SourceForce gehostet, und der Installer für die Windows-Version enthielt Adware und Werbung. Der Ruf des Programms hat hierunter sehr gelitten. Dies wurde nun mit der Version 11.x beendet. Lädt man das Programm direkt von der Homepage herunter, so ist es jetzt für alle Plattformen frei von Adware und Werbung.

Als Anreiz für Spenden zum Ausgleich der Werbeeinnahmen wird nun statt dessen allen Benutzern, die bereit sind, einen bestimmten Betrag zu spenden, eine Version mit einigen zusätzlichen Features angeboten ("Spenden-Version"). Diese sind z.B.

  • Automatisches Update bei neuen Versionen

  • Möglichkeit, mehrere Synchronisations-Vorgänge gleichzeitig auszuführen

  • Benachrichtigungen über den Programmablauf per E-Mail

Bei diesen zusätzlichen Features handelt es sich durchweg nur um Komfort-Erweiterungen. Die gesamte Funktionalität von FreeFileSync wird – wie der Programmname erwarten lässt – auch ohne diese von der kostenlosen Grundversion abgedeckt.

Problembehebung

Veränderter Zeitstempel

Beim Synchronisationsvorgang können die Zeitstempel von Ordnern und Dateien so verändert werden, dass anschließend Vergleiche über das Datum sinnlos werden.

Dieses Problem kann immer dann auftreten, wenn bei der Synchronisation die Deteiattribute (Eigentümer- und Zugriffsrechte) nicht korrekt übertragen werden können. Dies ist beim Dateisystem VFAT, bei NTFS ohne die Mount-Option permissions und beim Synchronisieren über einige Netzwerk-Dienste (z.B. Samba, FTP) der Fall.

Das Problem ist systembedingt und keine Eigenheit von FreeFileSync. Man kann es aber dadurch entschärfen, dass man beim Einbinden (mounten) von fremden oder entfernten Dateisystemen darauf achtet, dass der scheinbare Eigentümer der gemounteten Dateien mit dem Eigentümer der zu vergleichenden Dateien übereinstimmt. Die entsprechenden Mount-Optionen unterscheiden sich nach den Dateisystemen bzw. Netzwerk-Diensten und sind dort beschrieben.

Vergleich mehrerer Verzeichnisse

FreeFileSync kann Dateien immer nur paarweise miteinander vergleichen. Mehrfach-Vergleiche, wie z.B. in Synkron möglich, sind nicht vorgesehen. FreeFileSync verfügt jedoch über ein wirksames "File Locking", sodass z.B. in einem Netzwerk mehrfache Synchronisationen mit einer gemeinsamen Backup-Datei oder die Bearbeitung von Dateien während eines Backup-Vorgangs möglich sein sollten.

Deinstallation

Möchte man das Programm deinstallieren, muss man im Installationsordner von FreeFileSync die Datei uninstall.sh aufrufen. Das Programm wird dann komplett entfernt, jedoch nicht die Konfigurationsdateien. Diese muss man ggf. noch manuell im eigenen Home-verzeichnis löschen.

Intern

  • Datensicherung (Abschnitt „Programme“) Übersicht über die möglichen Methoden und Programme

  • Alternativen:

    • rsync - Das mächtige Standard-Werkzeug von Linux zur unidirektionalen Synchronisation und Datensicherung. Arbeitet durch inkrementelle Synchronisation und optionale Kompression in Netzwerken sehr schnell.

    • Unison - Ausgereiftes grafisches Werkzeug zur bidirektionalen Synchronisation (verwendet den rsync-Algorithmus)

Extern

Diese Revision wurde am 10. Mai 2021 15:28 von ubot erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Datenabgleich, Synchronisation, Backup