rclone
verwenden
Wenn Sie über Zugriff auf Tools und Lösungen wie beispielsweise rclone
und die Befehlszeilenschnittstelle (CLI) verfügen, dann können Sie IBM Cloud® Object Storage optimal nutzen.
Installation rclone
Das Tool rclone
wird zur Synchronisation von Verzeichnissen und zur Migration von Daten zwischen verschiedenen Speicherplattformen verwendet. Das Programm basiert auf Go und wird in Form einer einzelnen Binärdatei bereitgestellt.
Schnelleinstieg-Installation
- Führen Sie den Download der relevanten Binärdatei durch.
- Extrahieren Sie die Binärdatei für
rclone
oder die Dateirclone.exe
aus dem Archiv. - Führen Sie zur Installation den Befehl
rclone config
aus.
Installation mit Script durchführen
Installieren Sie rclone
auf Linux-, Mac OS- und BSD-Systemen:
curl https://rclone.org/install.sh | sudo bash
Des Weiteren stehen Betaversionen zur Verfügung:
curl https://rclone.org/install.sh | sudo bash -s beta
Das Installationsscript überprüft zuerst die installierte Version von rclone
und überspringt das Herunterladen, wenn die aktuelle Version bereits auf dem neuesten Stand ist.
Linux-Installation aus vorkompilierter Binärdatei
-
Rufen Sie die Binärdatei ab und entpacken Sie sie:
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip cd rclone-*-linux-amd64
-
Kopieren Sie die Binärdatei an eine sinnvolle Position:
sudo cp rclone /usr/bin/ sudo chown root:root /usr/bin/rclone sudo chmod 755 /usr/bin/rclone
-
Installieren Sie die Dokumentation:
sudo mkdir -p /usr/local/share/man/man1 sudo cp rclone.1 /usr/local/share/man/man1/ sudo mandb
-
Führen Sie zur Installation den Befehl
rclone config
aus:rclone config
macOS-Installation aus vorkompilierter Binärdatei
-
Laden Sie das Paket
rclone
herunter:cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
-
Extrahieren Sie die heruntergeladene Datei und
cd
in den extrahierten Ordner:unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
-
Verschieben Sie
rclone
in$PATH
und geben Sie Ihr Kennwort ein, wenn Sie dazu aufgefordert werden:sudo mkdir -p /usr/local/bin sudo mv rclone /usr/local/bin/
Der Befehl
mkdir
kann ohne Risiko ausgeführt werden, auch wenn das Verzeichnis vorhanden ist. -
Entfernen Sie die verbliebenen Dateien.
cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
-
Führen Sie zur Installation den Befehl
rclone config
aus:rclone config
Zugriff auf IBM COS konfigurieren
-
Führen Sie den Befehl
rclone config
aus und wählen Sie für eine neue ferne Instanzn
aus.No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> n
-
Geben Sie den Namen für die Konfiguration ein:
name> <YOUR NAME>
-
Wählen Sie den S3-Speicher ("s3") aus.
Choose a number from below, or type in your own value 1 / Alias for a existing remote \ "alias" 2 / Amazon Drive \ "amazon cloud drive" 3 / Amazon S3 Complaint Storage Providers (Dreamhost, Ceph, Minio, IBM COS) \ "s3" 4 / Backblaze B2 \ "b2" [snip] 23 / http Connection \ "http" Storage> 3
-
Wählen Sie IBM COS als S3-Speicheranbieter aus.
Choose the S3 provider. Enter a string value. Press Enter for the default ("") Choose a number from below, or type in your own value 1 / Amazon Web Services (AWS) S3 \ "AWS" 2 / Ceph Object Storage \ "Ceph" 3 / Digital Ocean Spaces \ "Digital Ocean" 4 / Dreamhost DreamObjects \ "Dreamhost" 5 / IBM COS S3 \ "IBMCOS" [snip] Provider>5
-
Geben Sie False ein, um Ihre Berechtigungsnachweise einzugeben.
Get AWS credentials from the runtime (environment variables or EC2/ECS meta data if no env vars). Only applies if access_key_id and secret_access_key is blank. Enter a boolean value (true or false). Please Enter for the default ("false"). Choose a number from below, or type in your own value 1 / Enter AWS credentials in the next step \ "false" 2 / Get AWS credentials from the environment (env vars or IAM) \ "true" env_auth>false
-
Geben Sie den Zugriffsschlüssel und den geheimen Schlüssel ein.
AWS Access Key ID - leave blank for anonymous access or runtime credentials. access_key_id> <> AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials. secret_access_key> <>
-
Geben Sie den Endpunkt für IBM COS an. Wählen Sie für Public IBM COS eine der verfügbaren Optionen aus. Weitere Informationen zu Endpunkten enthält Endpunkte und Speicherpositionen.
Endpoint for IBM COS S3 API. Choose a number from below, or type in your own value 1 / US Cross Region Endpoint \ "s3.us.cloud-object-storage.appdomain.cloud" 2 / US Cross Region Dallas Endpoint \ "s3-api.dal.us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 3 / US Cross Region Washington DC Endpoint \ "s3-api.wdc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 4 / US Cross Region San Jose Endpoint \ "s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 5 / US Cross Region Private Endpoint \ "s3-api.us-geo.objectstorage.service.networklayer.com" [snip] 34 / Toronto Single Site Private Endpoint \ "s3.tor01.objectstorage.service.networklayer.com" endpoint>1
-
Geben Sie eine IBM COS-Standortbedingung an. Die Standortbedingung muss mit dem Endpunkt übereinstimmen. Weitere Informationen zu Endpunkten enthält Endpunkte und Speicherpositionen.
1 / US Cross Region Standard \ "us-standard" 2 / US Cross Region Vault \ "us-vault" 3 / US Cross Region Cold \ "us-cold" 4 / US Cross Region Flex \ "us-flex" 5 / US East Region Standard \ "us-east-standard" [snip] 32 / Toronto Flex \ "tor01-flex" location_constraint>1
-
Geben Sie eine ACL an. Nur
public-read
undprivate
werden unterstützt.Canned ACL used when creating buckets or storing objects in S3. Choose a number from below, or type in your own value 1 "private" 2 "public-read" acl>1
-
Überprüfen Sie die angezeigte Konfiguration und akzeptieren Sie die Speicherung von "remote". Beenden Sie anschließend die Operation. Die Konfigurationsdatei hat folgendes Format:
[YOUR NAME] type = s3 Provider = IBMCOS access_key_id = xxx secret_access_key = yyy endpoint = s3.us.cloud-object-storage.appdomain.cloud location_constraint = us-standard acl = private
Befehlsreferenz
Bucket erstellen
rclone mkdir RemoteName:newbucket
Verfügbare Buckets auflisten
rclone lsd RemoteName:
Inhalte eines Buckets auflisten
rclone ls RemoteName:newbucket
Datei von lokaler auf ferne Einheit kopieren
rclone copy /Users/file.txt RemoteName:newbucket
Datei von ferner auf lokale Einheit kopieren
rclone copy RemoteName:newbucket/file.txt /Users/Documents/
Datei auf ferner Einheit löschen
rclone delete RemoteName:newbucket/file.txt
Listenbefehle
Es gibt mehrere zugehörige Listenbefehle:
ls
- nur zum Auflisten der Größe und des Pfads von Objektenlsl
- nur zum Auflisten der Änderungszeit, der Größe und des Pfads von Objektenlsd
- nur zum Auflisten von Verzeichnissenlsf
- zum Auflisten von Objekten und Verzeichnissen ein einfach zu parsender Formlsjson
- zum Auflisten von Objekten und Verzeichnissen im JSON-Format
rclone sync
Die Operation sync
bewirkt, dass Quelle und Ziel identisch sind. Dabei wird nur das Ziel geändert. Bei der Synchronisation werden unveränderte Dateien nicht übertragen. Zur Ermittlung von geänderten Dateien müssen Sie die Größe
und die Änderungszeit oder den MD5SUM-Wert überprüfen. Das Ziel wird so aktualisiert, dass es mit der Quelle übereinstimmt. Dazu werden ggf. auch Dateien gelöscht.
Da es bei dieser Operation zu Datenverlusten kommen kann, sollten Sie zuerst mit dem Flag --dry-run
einen Testlauf durchführen, um genau feststellen zu können, welche Daten kopiert und welche gelöscht werden.
Die Dateien an der Zielposition werden nicht gelöscht, wenn an irgendeinem Punkt Fehler aufgetreten sind.
Der Inhalt des Verzeichnisses wird synchronisiert, nicht das Verzeichnis selbst. Wenn source:path
ein Verzeichnis ist, dann wird der Inhalt von source:path
kopiert, nicht jedoch der Verzeichnisname und dessen
Inhalt. Weitere Informationen zu diesem Thema finden Sie in der ausführlichen Erläuterung im Befehl copy
.
Wenn dest:path
nicht vorhanden ist, wird der entsprechende Pfad erstellt. Anschließend wird der Inhalt von source:path
dorthin kopiert.
rclone sync source:path dest:path [flags]
rclone
an mehreren Standorten gleichzeitig verwenden
Sie können rclone
an mehreren Standorten gleichzeitig verwenden, wenn Sie für die Ausgabe jeweils ein anderes Unterverzeichnis auswählen:
Server A> rclone sync /tmp/whatever remote:ServerA
Server B> rclone sync /tmp/whatever remote:ServerB
Wenn Sie die Synchronisation (sync
) in dasselbe Verzeichnis ausführen, dann können Sie rclone copy
verwenden, da andernfalls die beiden Prozesse möglicherweise die Dateien des jeweils anderen Prozesses löschen:
Server A> rclone copy /tmp/whatever remote:Backup
Server B> rclone copy /tmp/whatever remote:Backup
--backup-dir=DIR
Bei Verwendung der Befehle sync
, copy
oder move
werden alle Dateien, die überschrieben oder gelöscht worden wären, in ihrer ursprünglichen Hierarchie in dieses Verzeichnis verschoben.
Wenn --suffix
festgelegt wird, dann erhalten die verschobenen Dateien das Suffix, das ihnen hinzugefügt wurde. Wenn (nach der Hinzufügung des Suffix) eine Datei mit demselben Pfad im Verzeichnis vorhanden ist, wird sie überschrieben.
Die verwendete ferne Einheit muss die serverseitige Verschiebung oder Kopieerstellung unterstützen und Sie müssen dieselbe ferne Einheit wie das Ziel der Synchronisation verwenden. Das Sicherungsverzeichnis darf keine Überschneidungen mit dem Zielverzeichnis aufweisen.
rclone sync /path/to/local remote:current --backup-dir remote:old
Mit diesem Befehl wird sync
anhand von /path/to/local
mit remote:current
synchronisiert. Dateien, die aktualisiert oder gelöscht worden wären, werden jedoch in remote:old
gespeichert.
Wenn Sie rclone
über ein Script ausführen, können Sie das aktuelle Datum als Verzeichnisname verwenden, der zur Speicherung der alten Dateien an --backup-dir
übergeben wird. Alternativ hierzu können Sie das aktuelle
Datum in --suffix
übergeben.
Tägliche Synchronisation mit rclone
durchführen
Zur Automatisierung von Sicherungen müssen Sie einen Sicherungszeitplan erstellen. Abhängig von Ihrer Plattform werden hierbei unterschiedliche Verfahren angewendet. Unter Windows kann hierzu der Taskplaner (Aufgabenplanung) benutzt werden, während unter Mac OS und Linux 'crontabs' verwendet wird.
Verzeichnis synchronisieren
Rclone
synchronisiert ein lokales Verzeichnis mit dem fernen Container und speichert alle Dateien im lokalen Verzeichnis im Container. Rclone
verwendet die Syntax rclone sync source destination
, wobei
source
der lokale Ordner und destination
der Container in Ihrem IBM COS ist.
rclone sync /path/to/my/backup/directory RemoteName:newbucket
Möglicherweise haben Sie bereits ein Ziel, das erstellt wird. Andernfalls können Sie ein neues Bucket erstellen, indem Sie die oben beschriebenen Schritte ausführen.
Job terminieren
Bevor Sie einen Job terminieren, sollten Sie sicherstellen, dass Sie den ersten Upload ausgeführt haben und dass dieser abgeschlossen wurde.
Fenster
-
Erstellen Sie an einer beliebigen Position auf Ihrem Computer eine Textdatei mit dem Namen
backup.bat
und fügen Sie den Befehl ein, den Sie im Abschnitt zum Synchronisieren eines Verzeichnisses verwendet haben. Geben Sie den vollständigen Pfad zurclone.exe
an und vergessen Sie nicht, die Datei zu speichern.C:\full\path\to\rclone.exe sync "C:\path\to\my\backup\directory" RemoteName:newbucket
-
Verwenden Sie
schtasks
, um einen Job zu terminieren. Dieses Dienstprogramm verwendet eine Reihe von Parametern.
-
/RU – der Benutzer, unter dem der Job ausgeführt werden soll. Dieser Parameter ist erforderlich, wenn der gewünschte Benutzer abgemeldet ist.
-
/RP – das Kennwort des Benutzers.
-
/SC – legen Sie DAILY fest.
-
/TN – der Name des Jobs. Ordnen Sie ihm den Namen 'backup' zu.
-
/TR – der Pfad zur Datei 'backup.bat', die Sie erstellt haben.
-
/ST – der Zeitpunkt, zu dem der Start der Task ausgeführt werden soll. Dies erfolgt im 24-Stunden-Zeitformat. 01:05:00 ist 1:05 AM. 13:05:00 wäre 13:05 PM.
schtasks /Create /RU username /RP "password" /SC DAILY /TN Backup /TR C:\path\to\backup.bat /ST 01:05:00
Mac und Linux
-
Erstellen Sie an einer beliebigen Position auf Ihrem Computer eine Textdatei mit dem Namen
backup.sh
und fügen Sie den Befehl ein, den Sie im Abschnitt zum Synchronisieren eines Verzeichnisses verwendet haben. Die Datei hat folgendes Format. Geben Sie den vollständigen Pfad zur ausführbaren Datei fürrclone
an und vergessen Sie dabei nicht, die Datei zu speichern.#!/bin/sh /full/path/to/rclone sync /path/to/my/backup/directory RemoteName:newbucket
-
Definieren Sie das Script mit
chmod
als ausführbar.chmod +x backup.sh
-
Bearbeiten Sie 'crontabs'.
sudo crontab -e
-
Fügen Sie einen Eintrag am Ende der crontabs-Datei hinzu. Die crontabs-Dateien sind einfach strukturiert: Die ersten fünf Felder geben der Reihe nach die Werte für Minuten, Stunden, Tage, Monate und Wochentage an. Mit * werden alle bezeichnet. Wenn die Datei
backup.sh
täglich um 1 Uhr nachts (1:05 AM) ausgeführt werden soll, dann verwenden Sie einen Befehl mit dem folgenden Format:5 1 * * * /full/path/to/backup.sh
-
Speichern Sie die crontabs-Datei. Sie sind nun bereit für weitere Schritte.