Dateien in der Shell zu Cloud-Diensten hochladen

Aus EasyLinux 10/2017

Dateien in der Shell zu Cloud-Diensten hochladen

Dropbox & Co. steuern

Mit “rclone” greifen Sie auf der Kommandozeile auf Onlinespeicher zu, die via “rsync” nicht zu erreichen sind – so können Sie z. B. Dateien in die Dropbox legen und anschließend die lokale Version löschen.

Rsync ist ein beliebtes Tool, um Dateien und Verzeichnisse auf verschiedenen Rechnern zu synchronisieren (siehe den vorherigen Artikel), und Sie können damit auch große Dateien auf einen anderen Rechner auslagern (und dann von der Platte löschen, um Platz zu gewinnen). Das gelingt aber nur, wenn Sie auf allen beteiligten Rechnern das Recht haben, rsync auszuführen – meist bedeutet das, dass Sie sich auf diesen PCs via SSH einloggen können.

Setzen Sie einen der Cloud-Storage-Dienste wie Dropbox, Google Drive oder Microsoft OneDrive ein, ist das nicht der Fall: Die Anbieter stellen eigene Tools für das automatische Hochladen von Dateien bereit oder setzen voraus, dass Sie die Web-Oberfläche des Dienstes nutzen. Beides verhindert zuverlässig eine Automatisierung nach eigenen Vorstellungen, etwa mit einem Shell-Skript.

Hier hilft das Tool rclone [1], das ähnliche Features wie rsync bietet, sich aber auf die Zusammenarbeit mit Cloud-Storage-Diensten konzentriert. Wir zeigen am Beispiel eines Dropbox-Kontos, wie Sie per Shell-Befehl Dateien in die Dropbox laden können – und zwar ohne sie dauerhaft in einem synchronisierten Verzeichnis ~/Dropbox/ liegen zu lassen.

“rclone” installieren

Auf der Heft-DVD finden Sie unter programme/andere/rclone/ die Datei rclone-v1.36-linux-amd64.zip, die Sie mit unzip entpacken können – dadurch entsteht ein Ordner rclone-v1.36-linux-amd64, aus dem Sie die beiden Dateien rclone und rclone.1 jeweils in die Verzeichnisse /usr/bin/ und /usr/share/man/man1/ verschieben:

unzip rclone*.zip
cd rclone-v1.36-linux-amd64
sudo mv rclone /usr/bin/
sudo mv rclone.1 /usr/share/man/man1/

Alternativ richten Sie rclone über die Paketverwaltung ein; unter Kubuntu gelingt das mit sudo apt install rclone, OpenSuse-Anwender suchen auf der OpenSuse-Software-Seite [2] nach rclone – dort können Sie dann via One-Click-Install automatisch das Paket einspielen.

Die rclone-Version auf unserer Heft-DVD (1.36) war bei Redaktionsschluss aber aktueller als die Versionen, die Sie über die Repositorys einspielen können (1.35), und wir empfehlen, unsere Version zu verwenden, weil der Zugriff auf Unterverzeichnisse in Version 1.35 teilweise nicht funktioniert.

Kontozugriff einrichten

Jeden Storage-Dienst, den Sie mit rclone nutzen möchten, richten Sie (als normaler Anwender) mit dem Kommando rclone config interaktiv ein, das Tool stellt dann eine Reihe von Fragen, die Sie alle durch kurze Texteingaben und Drücken von [Eingabe] beantworten. Wir zeigen das am Beispiel von Dropbox.

  1. Haben Sie den Befehl rclone config abgeschickt, wählen Sie die Option n (New remote).
  2. Es erscheint ein Prompt name; hier geben Sie dropbox ein.
  3. Dann wählen Sie aus zwölf Anbietern den richtigen aus; bei unseren Tests hatte Dropbox die Nummer 4.
  4. Es folgen zwei Fragen nach einem “Dropbox App Key” und einem “Dropbox App Secret” – beides haben Sie nicht und drücken jeweils einfach [Eingabe].
  5. Im nächsten Schritt zeigt das Tool eine URL an, die Sie kopieren und im Browser öffnen. Der Dropbox-Server informiert, dass Sie versuchen, rclone mit Ihrem Dropbox-Konto zu verknüpfen – geben Sie Ihre Zugangsdaten ein und klicken Sie auf Sign in bzw. Anmelden. Es folgt ein weiterer Dialog, in dem Sie die Verknüpfung per Klick auf Zulassen bestätigen (Abbildung 1).
  6. Abbildung 1: Den Zugriff von "rclone" auf Ihr Dropbox-Konto geben Sie über die Webseite frei.

    Abbildung 1: Den Zugriff von “rclone” auf Ihr Dropbox-Konto geben Sie über die Webseite frei.

  7. Die Webseite zeigt nun einen Code an, den Sie in umgekehrter Richtung übertragen, Sie kopieren ihn und fügen ihn im Terminalfenster mit [Umschalt]+[Strg]+[V] bei Enter the code ein.
  8. Es erscheint nun eine Zusammenfassung der neuen Einstellungen, die Sie mit y bestätigen – damit ist die Einrichtung abgeschlossen – Sie sehen dann wieder das Hauptmenü der Konfiguration, das Sie mit q verlassen.

Überblick

Für Zugriffe auf die Dropbox verwenden Sie rclone nun wie folgt: Als erste Option ist immer ein rclone-Kommando, wie z. B. ls anzugeben, und danach folgen Argumente für dieses Kommando – wenn diese sich auf Dateien oder Verzeichnisse in der Dropbox beziehen, haben sie immer einen URL-ähnlichen Aufbau der Form dropbox:dateiname. Der Teil vor dem Doppelpunkt heißt dabei so, wie Sie oben in Schritt 2 den Zugang genannt haben.

Um einen schnellen Blick auf die in der Dropbox gespeicherten Dateien zu werfen, verwenden Sie das rclone-Kommando ls, das sämtliche gespeicherten Dateien (in allen Unterordnern), jeweils mit Pfad und Dateigröße, anzeigt. Das werden die meisten Anwender eher unübersichtlich finden – es entspricht grob einem Aufruf von find unter Linux –, und darum lässt sich über die Option --max-depth eine maximale Tiefe einstellen. Für ein “normales” Verzeichnislisting (das gar nicht in Unterordner absteigt) ist Tiefe 1 die richtige:

rclone --max-depth 1 ls dropbox:

Das rclone-Kommandos lsl arbeitet wie ls, zeigt aber zusätzlich für jede Datei das Datum der letzten Änderung an. Daneben gibt es noch das Kommando lsd, das nur Verzeichnisse auflistet. Der Kasten Inhalte auflisten zeigt beispielhaft die Ausgaben von rclone lsl (alle Inhalte auflisten) und rclone lsd (nur Verzeichnisse, ohne Rekursion).

Inhalte auflisten

[esser@quadi7:~]$ rclone lsl dropbox:
  1900857 2013-02-13 21:52:11.000000000 Kamera-Uploads/2013-02-13 21.52.10.jpg
  2338495 2013-02-19 22:19:25.000000000 Kamera-Uploads/2013-02-19 22.19.24.jpg
  7421848 2014-07-24 19:23:20.000000000 diss-hgesser-ulix.pdf
[...]
[esser@quadi7:~]$ rclone lsd dropbox:
           0 0001-01-01 00:00:00        -1 Dokumente
           0 0001-01-01 00:00:00        -1 EasyLinux
           0 0001-01-01 00:00:00        -1 Kamera-Uploads
[...]
[esser@quadi7:~]$ rclone lsd dropbox:Dokumente/
           0 0001-01-01 00:00:00        -1 Test

Dateitransfers erledigen Sie über das rclone-Kommando copy, dabei geben Sie einen Dateinamen und ein Zielverzeichnis auf der Dropbox an, z. B.

rclone copy test1.pdf dropbox:Dokumente/

Nach Abschluss des Transfers erscheint eine Erfolgsmeldung der Form

Transferred:  3.742 kBytes (34.433 kBytes/s)

Beachten Sie, dass copy immer nur eine einzige Datei übertragen kann; ein Aufruf der Form rclone copy *.pdf dropbox: ist also nicht möglich. Es gibt auch ein rclone-Kommando move, das wie copy arbeitet, aber das Original löscht. Die Entwickler raten, es nur mit Vorsicht zu verwenden. Nutzen Sie besser copy und löschen Sie die lokale Datei danach von Hand.

Transfers in Gegenrichtung sind auch möglich; mit

rclone copy dropbox:Dokumente/test1.pdf /tmp/

kopieren Sie die Datei test1.pdf aus dem Ordner Dokumente der Dropbox ins lokale Verzeichnis /tmp/.

Rückübertragung verhindern

Wenn parallel auch der reguläre Dropbox-Client installiert ist, landen manuell über rclone hochgeladene Dateien gleich wieder über den Synchronisationsmechanismus im Ordner Dropbox/ – das ist in der Regel nicht erwünscht. Hier hilft es, einen Dropbox-Ordner anzulegen, den Sie explizit von der Synchronisation ausschließen. Erstellen Sie z. B. in Dropbox/ einen Ordner DontSync und rufen Sie über das Dropbox-Icon in der Startleiste den Menüpunkt Preferences auf. Es öffnet sich ein Dialog, in dem Sie zum Reiter Account wechseln. Klicken Sie dort auf die Schaltfläche Selective Sync, entfernen Sie das Häkchen vor dem Ordner DontSync, und bestätigen Sie die Änderung per Klick auf Update (Abbildung 2). Wenn Sie nun Dateien mit rclone copy Dateiname dropbox:DontSync/ in diesen Ordner hochladen, lädt der Hintergrunddienst sie nicht wieder herunter.

Abbildung 2: Richten Sie in der Dropbox-Konfiguration einen Ordner ein, der nicht automatisch synchronisiert wird.

Abbildung 2: Richten Sie in der Dropbox-Konfiguration einen Ordner ein, der nicht automatisch synchronisiert wird.

Infos

  1. rclone: http://rclone.org/

  2. OpenSuse-Paketsuche: https://software.opensuse.org/search

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
EasyLinux 10/2017 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben