Warum eine Cloud?
Warum eine Cloud nutzen? Ich habe einen Dual-Boot Rechner mit Windows 7 und Ubuntu 14.04 LTS. Windows benutze ich zum Beispiel zum Scannen von Dokumenten, da es einfach keine passende Software für meinen EpsonPerfect 3490 Photo unter Ubuntu gibt (was geht, ist sehr rudimentär und kann nicht einmal mit der simplen Epson Standard Software für Windows mithalten). Und in Zukunft will ich eventuell sogar unter Windows Abby Fine Reader nutzen, um meinen Schriftverkehr ganz elektronisch zu machen und zu archivieren. Unter Linux gibt es da wohl auch nichts vergleichbares.
Da ich die gescannten Dokumente natürlich auf allen meinen Rechnern und auch auf mobilen Rechnern auf Reisen nutzen können will, bietet sich eine Cloud als ideale Lösung an. (Bisher habe ich mir die Dokumente immer in ein eigenes Imap Postfach zugemailt und sie dann bei Bedarf dort an meinen anderen Rechnern abgeholt. Umständlich, aber für ein paar Dokumente ok. Bei der Digitalisierung meines ganzen Archivs natürlich nicht mehr sinnvoll – also Cloud).
Backup in der Cloud
Ein anderer Punkt, der letztlich der eigentliche Anlaß war, ist das Thema Backups. Ich habe vor ein paar Tagen angefangen, mit Gnuradio zu experimentieren und schon bald nicht ganz unkomplizierte Module im Gnuradio Companion konstruiert. Da ich es gewohnt bin, von aktuellen Sachen, an denen ich gerade arbeite, alle 30 Minuten ein Backup zu machen, hieß dies ständiges Hantieren mit dem USB-Stick, den ich diesmal nicht eingesteckt lassen konnte, weil er die Wärmeabfuhr aus meinem RTLSDR-USB-Stick behinderte. Also warum nicht einfach in der Cloud sichern?
Welche Cloud?
Nach einigem Recherchieren (siehe auch die Liste https://wiki.ubuntuusers.de/Cloud-Dienste/ ) blieben noch der Cloud-Dienst von Yandex Yandex Disk und die Telekom Magenta-Cloud in der engeren Auswahl. Letztlich fand ich es dann vorteilhaft, einen deutschen Anbieter zu nutzen, denn der Support läuft auf Deutsch, die Fragen der User sind auf deutsch oder englisch, und es ist vielleicht von Deutschland aus die Anbindung an das zugehörige Server-Rechenzentrum besser. Außerdem sind 10GB kostenlos, ohne jede Vertragsbindung, in meinen Augen kein schlechtes Angebot, Dropbox bietet nur 2GB, Google unterstützt Linux nicht so gut usw. Außerdem nutzt man die Magenta-Cloud gewissermaßen anonym, man muß nicht mal seine Wohnadresse in das Anmeldeformular eintragen.
Magenta-Cloud einrichten
Erster Schritt: Registrieren
Die Einrichtungsprozedur für die Magenta-Cloud ist einfach, man braucht zum Registrieren eine Mail-Adresse <my_email>. Diese wird beim Anmelden angegeben, man wählt dann frei ein Password <my_magenta_cloud_password>. Anschließend kann man sich an der Weboberfläche der Cloud mit username = <my_email> und password = <my_magenta_cloud_password> anmelden. Wenn man Lust hat, kann man gleich im Browser einzelne Dateien hochladen oder zurückkopieren.
Linux/Ubuntu – erste Schritte
Auch unter Linux/Ubuntu/Gnome kann man schon an dieser Stelle über die üblichen Mechanismen des Dateibrowsers und dem WebDav(s) Protokoll mit der Magenta-Cloud Kontakt aufnehmen und Dateien und Verzeichnisse mit Drag and Drop oder Copy/Paste hin und her kopieren. (Siehe auch den entsprechenden Eintrag zur Magenta-Cloud in https://wiki.ubuntuusers.de/Cloud-Dienste/ ) Caveat: Dies ging in Ubuntu 14.04, aber in meinem Scientific Linux (=CentOS = RHEL) 6.5 war es nicht möglich, Verzeichnisse zu bewegen, nur Dateien gingen.
Letztlich ist dies aber ein sehr unbefriedigender Weg, denn Datei Timestamps gehen dabei verloren, man kann nicht im Archivmodus kopieren usw. und natürlich auch nicht rsync nutzen usw.
Linux/Ubuntu – Die Lösung: davfs
Die Lösung wird ausführlich präsentiert in
(1) https://wiki.ubuntuusers.de/WebDAV/
und in etwas rudimentärer Form (nur Root kann mounten) und unklarer Darstellung in
Die Lösung heißt davfs, ein Linux-Filesystem, das seine Operationen über WebDav abwickelt (und damit letztlich zu verschiedensten Cloud-Anbietern, die WebDav nutzen, kompatibel sein dürfte). Ich wußte zuerst nicht, ob das davfs das Problem mit den modifizierten Timestamps lösen würde, und zögerte etwas, die Anleitung abzuarbeiten, habe es dann aber doch getan und wurde mit dem Erfolg belohnt, daß alles wirklich wie gewünscht funktioniert – vor allem kann ich wirklich mit „cp -dpR“ und „rsync -avz“ meine Dateien und Verzeichnisse im Archivmodus sichern und zurückspielen.
(Leider nur ein Wunschtraum: In Wirklichkeit sind diese beiden wichtigen Funktionalitäten leider nicht möglich 🙁 )
Davfs einrichten – wie?
Was ist dazu nötig? Es steht zwar alles im Prinzip schon in (1), aber ich habe unten „to serve the public“ noch mal die Schritte im einzelnen in eigenen Worten dargestellt:
Ins Heimatverzeichnis wechseln und einen Ordner ~/magenta anlegen
cd ~ mkdir magenta
Dann das unbedingt nötige Paket davfs2 installieren
sudo apt-get install davfs2
In der Konfigurationsdatei /etc/davfs2/secrets die folgende Zeile am Ende eintragen (drei Elemente getrennt durch Spaces):
https://webdav.magentacloud.de <my_magenta_email> <my_webdav_password>
Man beachte, daß hier das „Webdav“-Passwort genommen werden muß, also nicht das globale obengenannte „Magenta Cloud“-Passwort, mit dem man sich zum Beispiel im Browser in die Cloud überhaupt einloggt. Dieses „Webdav“-Passwort kann man sich erst erstellen, wenn man im Browser den Zugriff auf die Cloud-Funktionen hat (siehe https://cloud.telekom-dienste.de/hilfe#einrichten ).
Warum zwei Passwörter: Technisch verbindet man sich mit dem „Magenta Cloud“-Passwort mit der allgemeinen „Kontrollschicht“ der Magenta-Cloud, zum Beispiel, wenn man die Oberfläche und die Kontrollumgebung im Browser startet. Für die Abwicklung der einzelnen Dateitransfers zwischen dem eigenen Computer und dem Rechner(verbund) auf dem die Magenta-Cloud läuft, ist aber ein Server zuständig, der nach dem (auch in anderen Clouddiensten verwendeten und in seinen Funktionen standardisierten) WebDav-Protokoll arbeitet. Die Magenta-Cloud ist nun so eingerichtet, daß der Kontakt zu diesem Server über ein eigenes Password gesichert ist, das man sich erst nach „Betreten“ der Magenta-Cloud Weboberfläche mit den dann zugänglichen Verwaltungsmöglichkeiten einrichten kann und soll. Warum dies so gelöst ist, weiß ich nicht, vielleicht, damit man das äußere Passwort behalten kann, wenn das innere einmal kompromittiert werden sollte.
Das Editieren eines Owner-Root-Files kann man mit sudo nano machen. (Wer es lieber mit gedit machen möchte, sollte sich https://wiki.ubuntuusers.de/sudo/ durchlesen):
sudo nano /etc/davfs2/secrets
Dann die Kontrolle
sudo cat /etc/davfs2/secrets
Jetzt die nötige Änderung in der fstab
sudo nano /etc/fstab
Die folgenden zwei Zeilen anhängen (Leerzeichen zum Trennen der sechs einzelnen Einträge in der zweiten Zeile können Spaces oder Tabs sein):
# https://webdav.magentacloud.de /home/juergen/magenta davfs noauto,user,rw 0 0
Die Optionen sind alle wichtig: „noauto“ verhindert, daß beim System-Bootup gleich gemountet wird, denn dann ist ja das Netzwerk noch nicht vorhanden und schlimmstenfalls würde sich bei Fehlen dieser Option das System im Boot aufhängen. „user“ sagt, daß auch der User mounten können muß. Fehlte diese Option wären unsere im Folgenden erklärten weiteren Aktionen sinnlos. Und „rw“ natürlich, da wir lesen und schreiben wollen.
Wieder die Kontrolle
cat /etc/fstab
Jetzt können wir schon mal probeweise als Root mit sudo mounten
sudo mount /home/juergen/magenta df ls -la magenta sudo umount /home/juergen/magenta ls magenta
Wir wollen aber auch als normaler User mounten können:
sudo dpkg-reconfigure davfs2 sudo usermod -aG davfs2 juergen
Mit dem oberen Kommando startet man ein Terminalprogramm mit pseudografischer Ausgabe, in dem man die entsprechende Auswahl („Yes“) auf die für solche Programme übliche Weise trifft. Der untere Befehl nimmt den User (bei mir „juergen“) in die Gruppe „davfs2“ auf. Das ist ein üblicher Mechanismus für Programme, die vom Benutzer gestartet, dann mit höheren Rechten/Root-Rechten laufen sollen (suid bit setzen https://de.wikipedia.org/wiki/Setuid ).
Die folgende Kleinigkeit war bei mir noch nötig für ein fehlerfreies Funktionieren:
Mit
gedit ./davfs2/secrets
wieder die folgende, oben schon genante, Zeile am Ende der globalen /etc/davfs2/secrets in die lokalen ~/.davfs2/secrets eintragen:
https://webdav.magentacloud.de <my_magenta_email> <my_webdav_password>
Und dann noch die Rechte passend setzen
chmod 600 ./davfs2/secrets
Jetzt können wir als normaler Benutzer mounten und unmounten:
mount magenta df ls -la magenta umount magenta df
Als letztes: Ein Backup-Skript
Das folgende kleine Skript in ~/bin sichert mir nun meine Gnuradio-Arbeiten (und anderes):
magsave <savedir>
aufgerufen im Heimatverzeichnis sichert das Directory ~/<savedir> in ~/magenta/archiv-antares/<savedir> als gesplittetes File <savedir_basename>.tgz
(Achtung: <savedir> darf nicht mit einem / enden)
#!/bin/bash
MYHOME=/home/juergen
ARCHIV=archiv-antares
SAVEDIR=$1
FINALSAVEDIR=${SAVEDIR##*/}
SAVEDIRTGZ=$FINALSAVEDIR.tgz
cd $MYHOME
SAVEPATHLOCAL=$MYHOME/temp/$SAVEDIR
SAVEPATHTGZ=$SAVEPATHLOCAL/$SAVEDIRTGZ
mkdir -p $SAVEPATHLOCAL
rm $SAVEPATHTGZ
tar -cvzf $SAVEPATHTGZ ./$SAVEDIR
cd $SAVEPATHLOCAL
rm $SAVEDIRTGZ.*
split -b 1M $SAVEDIRTGZ $SAVEDIRTGZ.
rm -r $MYHOME/magenta/$ARCHIV/$SAVEDIR
mkdir -p $MYHOME/magenta/$ARCHIV/$SAVEDIR
cp $SAVEDIRTGZ.* $MYHOME/magenta/$ARCHIV/$SAVEDIR
diff -r $SAVEPATHLOCAL $MYHOME/magenta/$ARCHIV/$SAVEDIR
Mit dem folgenden
magload <savedir>
werden die einzelnen Split-Blöcke aus ~/magenta/archiv-antares/<savedir> wieder zu <savedir_basename>.tgz zusammengesetzt und ein Vergleich mit dem derzeitigen ~/<savedir> gemacht.
#!/bin/bash
MYHOME=/home/juergen
ARCHIV=archiv-antares
SAVEDIR=$1
FINALSAVEDIR=${SAVEDIR##*/}
SAVEDIRTGZ=$FINALSAVEDIR.tgz
cd $MYHOME
SAVEPATHLOCAL=$MYHOME/temp/$SAVEDIR
rm -rf $SAVEPATHLOCAL
mkdir -p $SAVEPATHLOCAL
SAVEPATHTGZ=$SAVEPATHLOCAL/$SAVEDIRTGZ
cd $SAVEPATHLOCAL
cp $MYHOME/magenta/$ARCHIV/$SAVEDIR/*.tgz.* ./
cat *.tgz.* > $SAVEDIRTGZ
cd $MYHOME
tar -dzf $SAVEPATHLOCAL/$SAVEDIRTGZ ./