Von der aktuellen "Cloud-Bewegung" halte ich ja eigentlich nicht viel. Auf einmal halten es alle für "hip", ihre Daten "in der Cloud" abzulegen, was für mich einerseits wie "(ge)klaut" klingt, andererseits auch wie "liegt auf irgendeinem Server, keine Ahnung, wer darauf (Hosterseitig) alles zugreifen kann und auch keine Ahnung, ob mal von heute auf morgen der Stecker gezogen wird und meine Daten fort sind". 
Dazu kommt: Will Google im Browser ein Cookie ablegen ist das unerhört, aber seine Steuererklärung legt man bedenkenlos in Apple's iKlaut...äh...iCloud ab.

Sicher werde ich nie wichtige Dateien zu irgendeinem Hoster hochladen (der seine Dienste noch dazu meist gratis anbietet) und schon garnicht meine Dateien eher online als zu Hause lokal abspeichern.

Auf was ich allerdings nicht mehr verzichten möchte, um größere Dateien (die den Rahmen einer E-Mail sprengen würden) zu "versenden" und  Dateien verfügbar zu halten, die ich sowohl zu Hause wie auch in der Firma oder unterwegs benötige: Dropbox.

Dropbox war einer der ersten "Online Speicherplatz"-Dienste (von Homepage-Hostern mal abgesehen) und meiner Ansicht nach der praktischste von allen, auch wenn einige Mitbewerber inzwischen aufgeholt haben.
Hier werden 2GB Speicherplatz gratis geboten (lässt sich ohne einen Cent Zuzahlung um einige weitere Gigabyte aufstocken, zum Beispiel in dem man Freunde einlädt), auf die man einerseits per Website Zugriff hat, andererseits per Android/iPhone-App und seinen ganzen Macs/PCs.
Dropbox synchronisiert ständig ein zuvor festgelegtes Verzeichnis auf der Festplatte und das macht es für mich so praktisch: Was ich in dieses Verzeichnis lege, ist ohne mein weiteres Zutun auch auf meinem Laptop, meinem Mac im Geschäft und per Webinterface/Android-App dowloadbar. Außerdem per Klick mit anderen teilbar.

Soweit zur Einführung, was Dropbox überhaupt ist, zurück zum Thema, um was es mir geht: Ich will wie gesagt nicht alle meine Daten in der Dropbox lagern und selbst wenn ich wollte, wäre es ziemlich unpraktikabel, alle persönlichen Dateien in die Dropbox zu schmeißen bis unmöglich, alle Festplatten und Teile des Systems dorthin zu bekommen.


Deshalb habe ich mir eine kleine Bash-Funktion geschrieben, stelle vom Handy aus eine VPN-Verbindung zum heimischen Server her und kopiere jede mögliche gewünschte Datei in die Dropbox, so dass die gesuchte Datei auf meinem Mac in der Firma erscheint, bzw. auf der Website downloadbar ist.

Was auf der ersten Seite etwas umständlich anmutet (wieso schaffe ich mir nicht einen anderen Zugang direkt auf den heimischen Server?) hat für mich zwei große Vorteile:

  • Ich muss nichts neu zusammenprogrammieren, Dropbox funktioniert sofort

  • Bis auf den VPN-Tunnel von meinem Handy nach Hause schaffe ich keine Angriffsfläche in mein Heimnetzwerk durch offene Ports oder ein Web-Portal, über welches ich auf Dateien meines Servers zugreifen kann

Ist keine große Sache, was man allerdings (neben dem aktiven Server/Computer zu Hause) benötigt, ist ein gratis Dropbox-Konto (oder halt irgend eine andere Cloud-Lösung, die automatisch ein Verzeichnis synchronisiert, wie etwa Google Drive) und die Möglichkeit, per SSH auf die heimische Shell zu kommen.

Auf die Idee, Dateien per SSH in die Dropbox zu kopieren, kann doch jeder kommen?

Genau (wobei ich mich wundere, wieso ich erst nach mehreren Monaten Dropbox-Nutung darauf gekommen bin).

Da es mir mit der Handy-Tastatur allerdings nie sehr leicht fiel, Dateien in die Dropbox zu kopieren (cp -r xyz /hier/liegt/meine/Dropbox), habe ich den vereinfachten Befehl "drop" erschaffen (drop xyz). 

drop erstellt einen Ordner "dropped" im Dropbox-Verzeichnis (denn wir wollen ja etwas Ordnung halten) und legt darin eine Kopie eines Verzeichnisses oder einzelner Dateien ab. Auf Wunsch (option -t) macht drop aus den Dateien einen komprimierten .tbz Tarball.

Folgende Funktion habe ich der .bash_profile-Datei des Benutzers, über den ich mich per SSH anmelde, eingefügt

function drop() {
  BOX="/hier/liegt/meine/Dropbox/dropped" # Absoluter Pfad zur Dropbox und der Unterordner, in den die Dateien gelegt werden sollen
  if $2 != "" ; then
    SRC=$2
    CMD=$1
  else
    SRC=$1
    CMD=""
  fi
  if $SRC == "" ; then
    echo "Benutzung: drop -t "
    echo "Kopiert die angegebene Datei oder das angegebene Verzeichnis in den Dropbox-Ordner $BOX"
    echo "Option -t erstellt einen .tbz-Tarball"
    echo " "
    exit 0
  fi
  if ! -d $BOX ; then 
    mkdir $BOX
    fi
  if $CMD == "-t" ; then
    tar -cjf $BOX/dropped.tbz "$SRC"
  else
    cp -r "$SRC" $BOX
  fi
  }

Es steht natürlich jedermann frei, den Befehl umzubenennen, da ihn einige sicher eher mit der Funktion assoziieren, dass die Daten gelöscht werden (to drop = fallen lassen), was natürlich nicht der Fall ist ;-)

Anwendungsbeispiele

drop ~/Documents/Briefe 
Kopiert den Ordner "Briefe" in die Dropbox

drop ~/Documents/Briefe/ 
Kopiert den Inhalt des Ordners "Briefe" in die Dropbox (ohne den Ordner selbst anzulegen)

drop ~/Documents/Briefe/Wichtiges Schreiben.indd 
Kopiert das wichtige Schreiben in die Dropbox

drop -t ~/Documents/Briefe 
Erstellt den komprimierten Tarball "dropped.tbz" mit dem Inhalt des Ordners "Briefe" in der Dropbox
(Praktisch, um einen schnelleren Up-/Download zu ermöglichen)

Â