Backup Syncroniesation von $HOME mit Google Drive Google Fotos

  • Hallo liebe Community.

    Heute geht es um Ordnersynchronisation. Dabei habe ich mir die Integration von OneDrive bei Windows 11 zum Vorbild genommen. Habe mich aber aus mehreren Gründen gegen OneDrive und für Google Drive entschieden. Zum einen hat Google Drive in den meisten Fällen wesentlich mehr Speicher zum anderen kann man dabei auch mit seinem Smartphone wie auch mit anderen Rechnern alle Dateien und auch Google Fotos synchronisieren. Es hat den Vorteil dass es auch gleichzeitig als Backup genutzt werden kann, für den Fall dass der Rechner mal neu aufgesetzt werden muss oder Dateien aus unvorhergesehenen Gründen zerschossen werden. Wer dennoch zusätzlich auch OneDrive als Laufwerk einhängen möchte kann dies mit folgender Videoanleitung tun.
    Für die Synchronisation habe ich zwei Bash-Scripte geschrieben welche das Programm rclone nutzen. Dieses ist in dem Paketquellen vorhanden und kann mit apt install rclone installiert werden. Danach muss es mit rclone config konfiguriert werden. Als Remote-Name verwenden wir g-drive. Nun klicken wir auf weiter bis wir zur Auswahl des Anbieters kommen. Hierbei ist es unter Linux Mint die Nummer 13 für Google Drive. Danach klicken wir wieder auf weiter können alle Voreinstellungen so lassen und bei der Auswahl für die Zugriffsberechtigung vergeben wir die 1 für vollen Zugriff. Also das sowohl lesen als auch schreiben möglich ist. Danach öffnet sich der Browser und man wird um Bestätigung mit seinem Gmail-Konto gefragt. Damit ist die Konfiguration schon abgeschlossen und wir können uns den Skript zuwenden. Hierfür erstellen wir eine Datei und speichern diese unter den Namen sync-g_gdrive.sh ab. Und dieses Script speichern wir folgenden Inhalt:

    Nun machen wir es noch mit chmod +x sync_gdrive.sh ausführbar und können es über einen Terminal mit dem Befehl ./sync_gdrive.sh aufrufen.

    Ich habe bei den Skript darauf geachtet dass immer auf die neueste Version einer Datei synchronisiert wird. Sollte auf Google Drive oder den lokalen Rechner eine Datei ersetzt werden wird hier von ein Backup erstellt. Wenn man den Befehl ./sync_gdrive.sh -new verwendet kann man den aktuellen Stand seines lokalen Ordners auf Google Drive übertragen, auch wenn die lokalen Dateien älter als die in Zielordner sind. Achtung: nicht vorhandene Dateien, werden auf Google Drive als Backup gesichert und ebenfalls gelöscht.
    Anmerkung: Natürlich könnt ihr die Ordner in dem Script euren Ordnern anpassen z.b. anstelle von (Vorlagen) (Scripte) oder so.
    Ich habe das Script auch mit Absicht mit Abfrage erstellt. Denn man möchte nicht immer automatisch den ganzen home Ordner synchronisieren. Falls gewünscht kann es ja angepasst werden oder ich stelle noch eine angepasste Version zum automatischen synchronisieren für z.B. Autostart oder Cron zur Verfügung.

  • cron Version:

    Automatisierung: Um das Skript regelmäßig auszuführen, kannst du es in einen cron-Job eintragen. Öffne den crontab-Editor: crontab -e Füge eine Zeile hinzu, um das Skript z.B. jede Stunde auszuführen: 0 * * * * /path/to/sync_gdrive.sh


    Für das zweite Script sync_gfoto.sh ist der Ablauf eigentlich genau derselbe, lediglich muss man hierbei darauf achten Schreibrechte bei der Konfiguration mit "true" anzugeben. Wobei Synchronisation bei diesen Script das falsche Wort wäre. Denn man kann seine Bilder von Google Fotos abrufen und auch lokale Bilder auf Google Fotos hochladen, aber man kann keine Bilder von Google Fotos über das Script löschen. Wer mit dieser Einschränkung leben kann für den ist dieses Script eine echte Hilfe.

    Musste den Beitrag leider Teilen da max 10000 Zeichen zulässig.

  • Habe es damals als echten Nachteil empfunden, dass man Fotos nicht direkt in Drive syncen oder sichern kann. Der Umweg über Google Fotos war nicht so meins, weil man dann halt die Fotos nicht als Datei vorliegen hat. Ich bin dann den Umweg gegangen, an meinen Smartphones via PhotoSync App alle Fotos als jpg in Google Drive zu sichern.

    Ich bin aktuell aber nicht sicher, ob Google Drive diese trotzdem komprimiert.

    Da ich dann sowohl Bilder, als auch Dateien in Drive liegen hatte, habe ich mit InSync synchronisiert.

    Zu deinem Script: schau mal bei Persönlicher Ordner. Da ist dir ein H ins Wort gerutscht.

    Wenn du statt apt install auf so etwas wie sudo -v ; curl https://rclone.org/install.sh | sudo bash setzt hast du den Vorteil, dass es nicht nur unter Debian/Ubuntu Derivaten läuft und du hast zudem die aktuelle Version. Die aus den Repos hängen oft hinterher. Das aber nur als konstruktiv gemeinter Tipp.

    💻 Ryzen 9 7900X RX7800XT 32GB | 💻 MacBook Pro M2Pro 32GB

    💾 DietPie @ Raspberry Pie 5 8GB | 💾 Unraid Homeserver i3-12100 - 32GB - 25TB | 💾 Mailcow Mailserver @ RS1000 8GB 160GB

  • Quote

    Zu deinem Script: schau mal bei Persönlicher Ordner. Da ist dir ein H ins Wort gerutscht.

    Danke für den Hinweis (ist korrigiert), und ja ich gehe leider immer von mir und Linux Mint aus. Das mit curl wird aber auch in der oben verlinkten Videobeschreibung erwähnt.

    Einen Hinweis würde ich auch noch einmal erwähnen google lässt ohne client ID nur 10 Dateien pro Sekunde zu. Es gibt nun zwei Möglichkeiten die erste sollte es wirklich mal beim synchronisieren eine Limit Fehlermeldung geben einfach nochmal synchronisieren oder die andere Möglichkeit bei google eine client ID erstellen wie das geht wird in dem Video ab 5:30 erläutert.

    Das selbe gilt auch für den Upload von Bildern ohne client ID. Diese sind pro Tag auf eine Anzahl und Größe der Bilder beschenkt.

    Code
    „message“: „Kontingent für Kontingentmetrik „Größe der Uploads“ überschritten und Größe der Uploads pro Tag des Dienstes „photoslibrary.googleapis.com“ für Verbraucher begrenzt

    Wenn ich wieder etwas mehr Zeit habe werde ich das sync_gfoto.sh Script noch mal anpassen ggf. eine Abfrage rein machen ob Bilder die nicht auf Google Fotos vorhanden sind hochgeladen werden sollen und wenn ja, das man auswählen kann welche und das es bei Fehlermeldung ggf. nur einen Hinweis gibt ohne es ewig für jedes Bild extra zu probieren.

    PS: Mit einer client ID wie im Video beschrieben sollen ~2 GB in 30 Minuten möglich sein.

  • Hier noch mal eine aktualisierte Version von sync_gfoto.sh


  • Habe sync_gfoto.sh noch die Option - Synchronisation (Übernahme des aktuellen Stands von Google Fotos)" und Duplikate von Google Fotos entfernen" hinzugefügt.


Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!