ODrive unter FreeBSD 11 (und Duplicity)

06.01.2024
Dieser Inhalt ist bereits etwas älter.
This content is already a bit old.
Bild

In diesem Artikel möchte ich beschrieben, wie ODrive unter FreeBSD 11 zur Synchronisierung eingerichtet wird. Kurz werde ich auch auf die Verwendung von Duplicity in Kombination mit ODrive eingehen.

In diesem Beispiel Verwenden wir Amazon Drive in Kombination mit ODrive.

Generell bietet ODrive seit einiger Zeit einen Linux-Client. Dieser Besteht aus einem Binary (Agent) und Phyton (Wrapper) Modul. Beide müssen auf dem Zielsystem also funktionieren.

Folgende Befehle müssen auf dem FreeBSD-System ausgeführt werden, um den Client nutzen zu können:

1. Wir wechseln die Shell "sh" mittels

sh

2. Wir führen den Befehl für den automatischen Download sowie Einrichtung des ODrive Agents auf dem System aus:

od="$HOME/.odrive-agent/bin" && curl -L "https://dl.odrive.com/odrive-py" --create-dirs -o "$od/odrive.py" && curl -L "https://dl.odrive.com/odriveagent-lnx-64" | tar -xvzf- -C "$od/" && curl -L "https://dl.odrive.com/odrivecli-lnx-64" | tar -xvzf- -C "$od/"

3. Nun ist der Agent zwar auf dem System installiert. Er ist aber nicht lauffähig, da hier noch die notwendigen Voraussetzungen zur vollständigen Linux-Kompatibilität fehlen. Diese installieren wir nun nach:

pkg install emulators/linux_base-c6

4. Nun mounten wir die für Linux Anwendungen notwendigen Mountpoints.

Damit diese nach einem Neustart auch wieder gemountet sind, tragen wir in der Datei "/etc/fstab" folgende 2 Zeilen ein:

linprocfs   /compat/linux/proc  linprocfs       rw      0       0
tmpfs    /compat/linux/dev/shm  tmpfs   rw,mode=1777    0       0

Wir aktivieren die Linux-Kompatibilitätsschicht mit einem Eintrag in die "rc.conf":

linux_enable="YES"

Und führen einen Neustart durch.

5. Nun starten wir den O-Drive Agent. Bitte wieder mit der Shell "sh" ausführen:

nohup "$HOME/.odrive-agent/bin/odriveagent">/dev/null&

Es dürfte keinerlei Fehlermeldung auf der Konsole erscheinen und nach ein paar Sekunden ist die Konsole wieder bereit.

Der Agent ist nun im Hintergrund gestartet.

6. Nun muss auf der ODrive Webseite ein Access-Key generiert werden. Dieser Key wird zur Authentifizierung des Agents an der ODrive Infrastruktur verwendet:

https://www.odrive.com/account/authcodes

7. Der Access-Key wir nun verwendet, um den Agent mit dem ODrive-Konto zu verknüpfen:

python3.6 "$HOME/.odrive-agent/bin/odrive.py" authenticate <KEY>

Wenn der Aufruf erfolgreich ist, wird "Hello <Benutzername>" angezeigt.

Der Agent ist nun mit dem Konto verknüpft und kann nun auf alle Cloud-Konten im  ODrive-Konto zugreifen.

8. Nun erstellen wir einen neuen Ordner unter "/mnt":

mkdir /mnt/cloudfiles

9. Wir mounten nun das O-Drive-Konto in einem Mountpoint auf dem System:

python3.6 "$HOME/.odrive-agent/bin/odrive.py" mount "/mnt/cloudfiles" /

Nun wird vom Agent nach kurzer Zeit unter dem Mountpoint "/mnt/cloudfiles" eine CLOUDF-Datei für jedes mit ODrive verknüpfte Konto erstellt.

10. Nun erstellen wir einen neuen Ordner über die Amazon Drive Webseite oder über ODrive. In diesem Beispiel den Ordner "backup". Dienen Ordner werden wir nun virtuell mounten, indem wir als erstes das korrekte Konto in ODrive auswählen

python3.6 "$HOME/.odrive-agent/bin/odrive.py" sync "/mnt/cloudfiles/Amazon Cloud Drive.cloudf"

und dann mit

python3.6 "$HOME/.odrive-agent/bin/odrive.py" sync "/mnt/cloudfiles/Amazon Cloud Drive/backup.cloudf"

diesen virtuell zu synchronisieren. Die Datei "backup.cloudf" wird automatisch gelöscht und ein Ordner namens "backup" angelegt. Dieser Ordner wird nun vom Agent überwacht.

 

Jetzt kann eine Sicherung z.B. über rsync oder mit anderen Backuptools ausgeführt werden.

Wenn ein Mountpoint im Verzeichnis "backup" erstellt wird und dieser auf einen SMB/NFS-Pfad zeigt es sehr einfach möglich, Netzwerkfreigaben in die Cloud zu sichern.

Da die Backups standardmäßig unverschlüsselt erfolgen, würde ich hier zu Backuptools wie Duplicity raten.

Hier eine Idee, wie die Synchronisation mit ODrive und Duplicity nutzbar ist:

  • Ordner am besten auf externem Speicher erstellen (hier werden die Backuparchive gespeichert)
  • Diesen Ordner unter dem Verzeichnis "/mnt/cloudfiles/backup" mounten

Nun synchronisiert ODrive die verschlüsselten Archive in die Cloud. Leider müssen die Archive hierfür lokal dauerhaft bestehen bleiben.


 

Feedback, suggestions for improvement, further ideas?

Simply use the contact form or send an email directly to info@kirgus.net.