Das "Schweizer Sackmesser" für Cloudsynchronisation unter Linux heisst Rclone:
https://en.wikipedia.org/wiki/Rclone
https://rclone.org/
https://rclone.org/webdav/
Für optimale Performance, Sicherheit und Zuverlässigkeit ist unter Linux eine Synchronisation mit RSync über SSH per Checksummenvergleich (Parameter -c/--checksum) zu realisieren.
quellVerzeichnis=/home/${benutzer}/${backupVerzeichnis}
zielVerzeichnis=${benutzer}@${server}:/mnt/backup/${benutzer}/${backupVerzeichnis}
/usr/bin/rsync -vcrt --delete --protect-args --whole-file ${quellVerzeichnis}/ ${zielVerzeichnis}/
Dazu muss RSync auf dem Client, wie auch auf dem Server, laufen. Aus Sicherheitsgründen erlaubt keine Cloudlösung die Nutzung von RSync auf dem Server. Deshalb ist der (Backup-)Server selber zu betreiben (keine Cloud). Für einfache und anspruchslose Anwendungen genügt bereits als Server (Backuprechner) ein Raspberry Pi 4 mit einer Samsung Portable T7 und Ubuntu Server LTS. Mangels Hardware-Krypto-Beschleuniger erreicht ein Raspberry Pi 4 über RSync+SSH Datenübertragungsraten bis höchstens 31 MB/s.
Soll RSync aus einem automatisch startenden und im Hintergrund laufenden Systemd-Dienst aufgerufen werden, muss die SSH-Anmeldung per Public-Key-Verfahren eingerichtet werden. Für das SSH Public-Key-Verfahren darf kein Passwort (Passphrase) verwendet werden!
Für die Datei- und Verzeichnissynchronisation mit Android-Mobilgeräten wird häufig die App FolderSync von Tacit Dynamics empfohlen (ungetestet!).
https://foldersync.io/
https://foldersync.io/docs/help/supportedservices/
Mit Hilfe von SFTP ist eine Synchronisation vom Mobilgerät über SSH mit dem Server (Backuprechner) möglich.
https://de.wikipedia.org/wiki/SSH_File_Transfer_Protocol
Hier noch die Hilfeseite von RSync zum Checksummenvergleich:
--checksum, -c
This changes the way rsync checks if the files have been changed and are in need of a transfer. Without this option, rsync uses a "quick check" that (by default) checks if each file's size and time of last modification match between the sender and receiver. This option changes this to compare a 128-bit checksum for
each file that has a matching size. Generating the checksums means that both sides will expend a lot of disk I/O reading all the data in the files in the transfer,
so this can slow things down significantly (and this is prior to any reading that will be done to transfer changed files)
The sending side generates its checksums while it is doing the file-system scan that builds the list of the available files. The receiver generates its checksums
when it is scanning for changed files, and will checksum any file that has the same size as the corresponding sender's file: files with either a changed size or a
changed checksum are selected for transfer.
Note that rsync always verifies that each transferred file was correctly reconstructed on the receiving side by checking a whole-file checksum that is generated
as the file is transferred, but that automatic after-the-transfer verification has nothing to do with this option's before-the-transfer "Does this file need to be
updated?" check.