Übertragen von Daten mit AzCopy v7 unter Linux
AzCopy ist ein Befehlszeilenprogramm, das entwickelt wurde, um Daten in/aus Microsoft Azure Blob und File Storage zu kopieren. Hierbei werden einfache Befehle verwendet, die für optimale Leistung konzipiert sind. Sie können Daten zwischen einem Dateisystem und einem Speicherkonto oder zwischen Speicherkonten kopieren.
Wichtig
Dieser Artikel beschreibt eine ältere Version von AzCopy. Informationen zur Installation der neuesten Version von AzCopy finden Sie unter AzCopy v10.
Hinweis
Ab Version 7.2. von AzCopy werden die .NET Core-Abhängigkeiten im Paket mit AzCopy bereitgestellt. Wenn Sie Version 7.2 oder höher verwenden, ist die Installation von .NET Core nicht mehr erforderlich.
Herunterladen und Installieren von AzCopy
Installation unter Linux
Hinweis
Abhängig von Ihrer Distribution müssen Sie unter Umständen .NET Core 2.1-Abhängigkeiten installieren. Diese sind im Artikel Voraussetzungen für .NET Core unter Linux aufgeführt.
Installieren Sie bei RHEL 7-Distributionen ICU- und libunwind-Abhängigkeiten: yum install -y libunwind icu
Die Installation von AzCopy unter Linux (v7.2 oder höher) ist ganz einfach: Extrahieren Sie einfach das TAR-Paket, und führen Sie das Installationsskript aus.
RHEL 6-basierte Distributionen: Downloadlink
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinuxrhel6
tar -xf azcopy.tar.gz
sudo ./install.sh
Alle anderen Linux-Distributionen: Downloadlink
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
tar -xf azcopy.tar.gz
sudo ./install.sh
Sie können die extrahierten Dateien entfernt, nachdem AzCopy unter Linux installiert ist. Wenn Sie nicht über Administratorrechte verfügen, können Sie azcopy
auch mit dem Shellskript „azcopy“ im extrahierten Ordner ausführen.
Alternative Installation unter Ubuntu
Ubuntu 14.04
Apt-Quelle für das Microsoft-Produktrepository für Linux hinzufügen und AzCopy installieren:
sudo echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod/ trusty main" > azure.list
sudo cp ./azure.list /etc/apt/sources.list.d/
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF
sudo apt-get update
sudo apt-get install azcopy
Ubuntu 16.04
Apt-Quelle für das Microsoft-Produktrepository für Linux hinzufügen und AzCopy installieren:
echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod/ xenial main" > azure.list
sudo cp ./azure.list /etc/apt/sources.list.d/
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF
sudo apt-get update
sudo apt-get install azcopy
Schreiben Ihres ersten AzCopy-Befehls
Die grundlegende Syntax für AzCopy-Befehle ist:
azcopy --source <source> --destination <destination> [Options]
Die folgenden Beispiele zeigen eine Vielzahl von Szenarios zum Kopieren von Daten zu und aus Microsoft Azure Blobs und Dateien. Für eine detailliertere Erklärung der in jedem Beispiel verwendeten Parameter, wechseln Sie zum azcopy --help
-Menü.
Blob: Herunterladen
Herunterladen eines einzelnen Blobs
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer/abc.txt \
--destination /mnt/myfiles/abc.txt \
--source-key <key>
Wenn der Ordner /mnt/myfiles
nicht vorhanden ist, erstellt AzCopy ihn und lädt abc.txt
in den neuen Ordner herunter.
Ein einzelnes Blob aus der sekundären Region herunterladen
azcopy \
--source https://myaccount-secondary.blob.core.windows.net/mynewcontainer/abc.txt \
--destination /mnt/myfiles/abc.txt \
--source-key <key>
Beachten Sie, dass der Lesezugriff im georedundanten Speicher aktiviert sein muss.
Herunterladen aller Blobs
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination /mnt/myfiles \
--source-key <key> \
--recursive
Nehmen Sie an, die folgenden BLOBs befinden sich im angegebenen Container:
abc.txt
abc1.txt
abc2.txt
vd1/a.txt
vd1/abcd.txt
Nach dem Herunterladen enthält das Verzeichnis /mnt/myfiles
die folgenden Dateien:
/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/vd1/a.txt
/mnt/myfiles/vd1/abcd.txt
Wenn Sie die Option --recursive
nicht angeben, werden keine Blobs heruntergeladen.
Herunterladen von Blobs mit angegebenem Präfix
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination /mnt/myfiles \
--source-key <key> \
--include "a" \
--recursive
Nehmen Sie an, die folgenden BLOBs befinden sich im angegebenen Container. Alle Blobs, die mit dem Präfix a
beginnen, werden heruntergeladen.
abc.txt
abc1.txt
abc2.txt
xyz.txt
vd1\a.txt
vd1\abcd.txt
Nach dem Herunterladen enthält der Ordner /mnt/myfiles
die folgenden Dateien:
/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
Das Präfix gilt für das virtuelle Verzeichnis, das den ersten Teil des Blobnamens bildet. Im obigen Beispiel stimmt das virtuelle Verzeichnis nicht mit dem angegebenen Präfix überein. Daher wird kein Blob heruntergeladen. Darüber hinaus lädt AzCopy keine Blobs herunter, wenn die Option --recursive
nicht angegeben ist.
Für exportierte Dateien und Quell-Blobs dieselbe Uhrzeit der letzten Änderung festlegen
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination "/mnt/myfiles" \
--source-key <key> \
--preserve-last-modified-time
Sie haben auch die Möglichkeit, Blobs auf Basis der Uhrzeit ihrer letzten Änderung vom Herunterladen auszuschließen. Fügen Sie die Option --exclude-newer
hinzu, falls Sie beispielsweise Blobs, deren Uhrzeit der letzten Änderung die gleiche oder eine spätere ist als die der Zieldatei, ausschließen wollen:
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination /mnt/myfiles \
--source-key <key> \
--preserve-last-modified-time \
--exclude-newer
Fügen Sie die Option --exclude-older
hinzu, falls Sie Blobs, deren Uhrzeit der letzten Änderung die gleiche oder eine frühere ist als die der Zieldatei, ausschließen wollen:
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination /mnt/myfiles \
--source-key <key> \
--preserve-last-modified-time \
--exclude-older
Blob: Hochladen
Hochladen einer einzelnen Datei
azcopy \
--source /mnt/myfiles/abc.txt \
--destination https://myaccount.blob.core.windows.net/mycontainer/abc.txt \
--dest-key <key>
Wenn der angegebene Zielcontainer nicht vorhanden ist, wird er von AzCopy erstellt und die Datei anschließend in den Container hochgeladen.
Hochladen einer einzelnen Datei in ein virtuelles Verzeichnis
azcopy \
--source /mnt/myfiles/abc.txt \
--destination https://myaccount.blob.core.windows.net/mycontainer/vd/abc.txt \
--dest-key <key>
Wenn das angegebene virtuelle Verzeichnis nicht vorhanden ist, lädt AzCopy die Datei so hoch, dass das virtuelle Verzeichnis Teil des Blobnamens wird (z.B., vd/abc.txt
im obigen Beispiel).
Umleitung von STDIN
gzip myarchive.tar -c | azcopy \
--destination https://myaccount.blob.core.windows.net/mycontainer/mydir/myarchive.tar.gz \
--dest-key <key>
Hochladen aller Dateien
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key <key> \
--recursive
Wenn Sie die Option --recursive
angeben, werden die Inhalte des angegebenen Verzeichnisses rekursiv in den Blobspeicher hochgeladen. Das bedeutet, dass alle Unterordner und die darin enthaltenen Dateien ebenfalls hochgeladen werden. Nehmen Sie z. B. an, die folgenden Dateien befinden sich im Ordner /mnt/myfiles
:
/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/subfolder/a.txt
/mnt/myfiles/subfolder/abcd.txt
Nach dem Hochladen enthält der Container die folgenden Dateien:
abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt
Wenn die Option --recursive
nicht angegeben ist, werden nur die folgenden drei Dateien hochgeladen:
abc.txt
abc1.txt
abc2.txt
Hochladen von Dateien, die einem angegebenen Muster entsprechen
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key <key> \
--include "a*" \
--recursive
Nehmen Sie z. B. an, die folgenden Dateien befinden sich im Ordner /mnt/myfiles
:
/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/xyz.txt
/mnt/myfiles/subfolder/a.txt
/mnt/myfiles/subfolder/abcd.txt
Nach dem Hochladen enthält der Container die folgenden Dateien:
abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt
Wenn die Option --recursive
nicht angegeben ist, überspringt AzCopy die Dateien, die in den Unterverzeichnissen sind:
abc.txt
abc1.txt
abc2.txt
Angeben des MIME-Inhaltstyps für Ziel-Blobs
AzCopy legt den Inhaltstyp eines Zielblobs standardmäßig als application/octet-stream
fest. Sie können den Inhaltstyp jedoch mit der Option --set-content-type [content-type]
explizit angeben. Mit dieser Syntax wird der Inhaltstyp für alle Blobs in einem Hochladevorgang festgelegt.
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/myContainer/ \
--dest-key <key> \
--include "ab" \
--set-content-type "video/mp4"
Wenn Sie für die Option --set-content-type
keinen Wert angeben, legt AzCopy den Inhaltstyp jedes Blobs und jeder Datei gemäß der jeweiligen Dateierweiterung fest.
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/myContainer/ \
--dest-key <key> \
--include "ab" \
--set-content-type
Anpassen der Zuordnung von MIME-Inhaltstypen
Für AzCopy wird eine Konfigurationsdatei verwendet, die eine Zuordnung der Dateierweiterung zum Inhaltstyp enthält. Sie können diese Zuordnung anpassen und bei Bedarf neue Paare hinzufügen. Die Zuordnung befindet sich unter /usr/lib/azcopy/AzCopyConfig.json
.
Blob: Kopieren
Kopieren eines einzelnen Blobs innerhalb eines Azure Storage-Kontos
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer1/abc.txt \
--destination https://myaccount.blob.core.windows.net/mycontainer2/abc.txt \
--source-key <key> \
--dest-key <key>
Wenn Sie einen Blob ohne die Option „--sync-copy“ kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.
Kopieren von Blobs zwischen Azure Storage-Konten
azcopy \
--source https://sourceaccount.blob.core.windows.net/mycontainer1/abc.txt \
--destination https://destaccount.blob.core.windows.net/mycontainer2/abc.txt \
--source-key <key1> \
--dest-key <key2>
Wenn Sie einen Blob ohne die Option „--sync-copy“ kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.
Kopieren eines einzelnen Blobs aus der sekundären Region in die primäre Region
azcopy \
--source https://myaccount1-secondary.blob.core.windows.net/mynewcontainer1/abc.txt \
--destination https://myaccount2.blob.core.windows.net/mynewcontainer2/abc.txt \
--source-key <key1> \
--dest-key <key2>
Beachten Sie, dass der Lesezugriff im georedundanten Speicher aktiviert sein muss.
Kopieren eines einzelnen Blobs und seiner Momentaufnahmen zwischen Storage-Konten
azcopy \
--source https://sourceaccount.blob.core.windows.net/mycontainer1/ \
--destination https://destaccount.blob.core.windows.net/mycontainer2/ \
--source-key <key1> \
--dest-key <key2> \
--include "abc.txt" \
--include-snapshot
Nach dem Kopiervorgang enthält der Zielcontainer den Blob und seine Momentaufnahmen. Der Container enthält den folgenden Blob und seine Momentaufnahmen:
abc.txt
abc (2013-02-25 080757).txt
abc (2014-02-21 150331).txt
Synchrones Kopieren von Blobs zwischen Storage-Konten
Standardmäßig kopiert AzCopy Daten zwischen zwei Speicherendpunkten auf asynchrone Weise. Aus diesem Grund wird der Kopiervorgang im Hintergrund ausgeführt, indem wenig Bandbreitenkapazität verwendet wird, die keine SLA im Hinblick darauf hat, wie schnell ein Blob kopiert wird.
Die Option --sync-copy
gewährleistet, dass der jeweilige Kopiervorgang mit gleichmäßiger Geschwindigkeit erfolgt. Beim synchronen Kopieren lädt AzCopy die zu kopierenden Blobs aus der angegebenen Quelle in den lokalen Arbeitsspeicher herunter und dann in das Speicherziel des jeweiligen Blobs hoch.
azcopy \
--source https://myaccount1.blob.core.windows.net/myContainer/ \
--destination https://myaccount2.blob.core.windows.net/myContainer/ \
--source-key <key1> \
--dest-key <key2> \
--include "ab" \
--sync-copy
--sync-copy
können zu zusätzlichen Ausgangskosten im Vergleich zu asynchronen Kopien führen. Zum Vermeiden von Ausgangskosten empfiehlt sich die Verwendung dieser Option auf einem Azure-VM, der sich in derselben Region wie das Quellspeicherkonto befindet.
Datei: Herunterladen
Herunterladen einer einzelnen Datei
azcopy \
--source https://myaccount.file.core.windows.net/myfileshare/myfolder1/abc.txt \
--destination /mnt/myfiles/abc.txt \
--source-key <key>
Wenn es sich bei der angegebenen Quelle um eine Azure-Dateifreigabe handelt, müssen Sie entweder den genauen Dateinamen (z. B. abc.txt
) angeben, um eine einzelne Datei herunterzuladen, oder die Option --recursive
zum rekursiven Herunterladen aller Dateien in der Freigabe angeben. Wenn Sie sowohl ein Dateimuster als auch die Option --recursive
angeben, führt dies zu einem Fehler.
Herunterladen aller Dateien
azcopy \
--source https://myaccount.file.core.windows.net/myfileshare/ \
--destination /mnt/myfiles \
--source-key <key> \
--recursive
Beachten Sie, dass alle leeren Ordner nicht heruntergeladen werden.
Datei: Hochladen
Hochladen einer einzelnen Datei
azcopy \
--source /mnt/myfiles/abc.txt \
--destination https://myaccount.file.core.windows.net/myfileshare/abc.txt \
--dest-key <key>
Hochladen aller Dateien
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.file.core.windows.net/myfileshare/ \
--dest-key <key> \
--recursive
Beachten Sie, dass alle leeren Ordner nicht hochgeladen werden.
Hochladen von Dateien, die einem angegebenen Muster entsprechen
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.file.core.windows.net/myfileshare/ \
--dest-key <key> \
--include "ab*" \
--recursive
Datei: Kopieren
Kopieren zwischen Dateifreigaben
azcopy \
--source https://myaccount1.file.core.windows.net/myfileshare1/ \
--destination https://myaccount2.file.core.windows.net/myfileshare2/ \
--source-key <key1> \
--dest-key <key2> \
--recursive
Wenn Sie eine Datei zwischen Dateifreigaben kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.
Kopieren aus einer Dateifreigabe zum Blob
azcopy \
--source https://myaccount1.file.core.windows.net/myfileshare/ \
--destination https://myaccount2.blob.core.windows.net/mycontainer/ \
--source-key <key1> \
--dest-key <key2> \
--recursive
Wenn Sie eine Datei von einer Dateifreigabe in ein Blob kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.
Kopieren vom Blob zur Dateifreigabe
azcopy \
--source https://myaccount1.blob.core.windows.net/mycontainer/ \
--destination https://myaccount2.file.core.windows.net/myfileshare/ \
--source-key <key1> \
--dest-key <key2> \
--recursive
Wenn Sie eine Datei aus einem Blob in eine Dateifreigabe kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.
Synchrones Kopieren von Dateien
Sie können die Option --sync-copy
angeben, um Daten synchron aus File Storage zu File Storage, aus File Storage zu Blob Storage oder aus Blob Storage zu File Storage zu kopieren. AzCopy führt diesen Vorgang aus, indem die Quelldaten in den lokalen Speicher heruntergeladen und dann in das Ziel hochgeladen werden. In diesem Fall finden Standardausgangskosten Anwendung.
azcopy \
--source https://myaccount1.file.core.windows.net/myfileshare1/ \
--destination https://myaccount2.file.core.windows.net/myfileshare2/ \
--source-key <key1> \
--dest-key <key2> \
--recursive \
--sync-copy
Der Standardblobtyp beim Kopieren aus File Storage in einen Blob Storage ist Blockblob. Benutzer können die Option --blob-type page
angeben, um den Zielblobtyp zu ändern. Die Typen page | block | append
sind verfügbar.
Beachten Sie, dass --sync-copy
zu zusätzlichen Ausgangskosten im Vergleich zu asynchronen Kopien führen kann. Zum Vermeiden von Ausgangskosten empfiehlt sich die Verwendung dieser Option auf einem Azure-VM, der sich in derselben Region wie das Quellspeicherkonto befindet.
Andere AzCopy-Funktionen
Nur Daten kopieren, die im Ziel nicht vorhanden sind.
Die Parameter --exclude-older
und --exclude-newer
erlauben Ihnen, jeweils ältere oder neuere Quellressourcen vom Kopieren auszuschließen. Falls Sie nur Quellressourcen kopieren wollen, die im Ziel nicht existieren, können Sie beide Parameter im AzCopy-Befehl angeben.
--source http://myaccount.blob.core.windows.net/mycontainer --destination /mnt/myfiles --source-key <sourcekey> --recursive --exclude-older --exclude-newer
--source /mnt/myfiles --destination http://myaccount.file.core.windows.net/myfileshare --dest-key <destkey> --recursive --exclude-older --exclude-newer
--source http://myaccount.blob.core.windows.net/mycontainer --destination http://myaccount.blob.core.windows.net/mycontainer1 --source-key <sourcekey> --dest-key <destkey> --recursive --exclude-older --exclude-newer
Verwenden Sie eine Konfigurationsdatei, um das Befehlszeilenparameter anzugeben
azcopy --config-file "azcopy-config.ini"
Sie können beliebige AzCopy-Befehlszeilenparameter in eine Konfigurationsdatei einfügen. AzCopy verarbeitet die Parameter in der Datei ebenso wie bei der Angabe über die Befehlszeile, wobei mit den Inhalten der Datei ein direkter Austausch erfolgt.
Nehmen wir an, eine Konfigurationsdatei namens copyoperation
enthält die folgenden Zeilen. Jeder AzCopy-Parameter kann in einer einzelnen Zeile angegeben werden.
--source http://myaccount.blob.core.windows.net/mycontainer --destination /mnt/myfiles --source-key <sourcekey> --recursive --quiet
oder in verschiedenen Zeilen:
--source http://myaccount.blob.core.windows.net/mycontainer
--destination /mnt/myfiles
--source-key<sourcekey>
--recursive
--quiet
Wenn Sie den Parameter auf zwei Zeilen verteilen, tritt bei der Ausführung von AzCopy ein Fehler auf, wie hier für den Parameter --source-key
dargestellt:
http://myaccount.blob.core.windows.net/mycontainer
/mnt/myfiles
--sourcekey
<sourcekey>
--recursive
--quiet
Angeben einer Shared Access Signature (SAS)
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer1/abc.txt \
--destination https://myaccount.blob.core.windows.net/mycontainer2/abc.txt \
--source-sas <SAS1> \
--dest-sas <SAS2>
Sie können auch eine SAS in der Container-URI angeben:
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer1/?SourceSASToken \
--destination /mnt/myfiles \
--recursive
Journaldateiordner
Sobald ein Befehl für AzCopy ausgeführt wird, prüft es, ob eine Journaldatei im Standardordner oder in einem Ordner vorhanden ist, den Sie über diese Option angegeben haben. Wenn die Journaldatei in keinem dieser Ordner vorhanden ist, behandelt AzCopy diesen Vorgang als neuen Vorgang und generiert somit eine neue Journaldatei.
Wenn die Journaldatei vorhanden ist, prüft AzCopy, ob die von Ihnen eingegebene Befehlszeile mit der Befehlszeile in der Journaldatei übereinstimmt. Wenn die beiden Befehlszeilen übereinstimmen, setzt AzCopy den unvollständigen Vorgang fort. Wenn sie nicht übereinstimmen, wird der Benutzer aufgefordert, entweder die Journaldatei zu überschreiben, um einen neuen Vorgang zu starten, oder den aktuellen Vorgang abzubrechen.
Falls Sie den Standardspeicherort für die Journaldatei verwenden wollen:
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key <key> \
--resume
Wenn Sie die Option --resume
auslassen oder die Option --resume
ohne den Ordnerpfad angeben (wie oben gezeigt), dann erstellt AzCopy die Journaldatei am Standardspeicherort ~\Microsoft\Azure\AzCopy
. Wenn die Journaldatei bereits vorhanden ist, setzt AzCopy den Vorgang auf Basis der Journaldatei fort.
Falls Sie einen benutzerdefinierten Speicherort für die Journaldatei angeben wollen:
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key key \
--resume "/mnt/myjournal"
In diesem Beispiel wird die Journaldatei erstellt, sofern diese nicht bereits vorhanden ist. Wenn sie vorhanden ist, setzt AzCopy den Vorgang auf Basis der Journaldatei fort.
Falls Sie einen AzCopy-Vorgang fortsetzen möchten, wiederholen Sie den gleichen Befehl. AzCopy unter Linux wird Sie dann zur Bestätigung auffordern:
Incomplete operation with same command line detected at the journal directory "/home/myaccount/Microsoft/Azure/AzCopy", do you want to resume the operation? Choose Yes to resume, choose No to overwrite the journal to start a new operation. (Yes/No)
Ausführliche Ausgabeprotokolle
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key <key> \
--verbose
Angeben der Anzahl der zu startenden gleichzeitigen Vorgängen
Die Option --parallel-level
gibt die Anzahl der gleichzeitigen Kopiervorgänge an. AzCopy startet standardmäßig eine bestimmte Anzahl gleichzeitiger Vorgänge zum Erhöhen des Datenübertragungsdurchsatzes. Die Anzahl gleichzeitiger Vorgänge entspricht der Anzahl der verfügbaren Prozessoren achtmal. Wenn Sie AzCopy in einem Netzwerk mit geringer Bandbreite ausführen, können Sie eine niedrigere Anzahl für --parallel-level angeben, um Fehler durch gleichzeitig verwendete Ressourcen zu vermeiden.
Tipp
Um die vollständige Liste der AzCopy-Parameter angezeigt zu bekommen, sehen Sie sich das Menü „azcopy --help“ an.
Installationsschritte für AzCopy 7.1 und ältere Versionen
AzCopy unter Linux (nur v7.1 und ältere Versionen) erfordert das .NET Core-Framework. Installationsanweisungen finden Sie auf der Seite zur .NET Core-Installation.
Beginnen Sie beispielsweise mit der Installation von .NET Core unter Ubuntu 16.10. Das neueste Installationshandbuch finden Sie auf der .NET Core unter Linux-Installationsseite.
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ yakkety main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-sdk-2.0.0
Nach der Installation von .NET Core laden Sie AzCopy herunter und installieren es.
wget -O azcopy.tar.gz https://aka.ms/downloadazcopyprlinux
tar -xf azcopy.tar.gz
sudo ./install.sh
Sie können die extrahierten Dateien entfernt, nachdem AzCopy unter Linux installiert ist. Wenn Sie nicht über Administratorrechte verfügen, können Sie azcopy
auch mit dem Shellskript „azcopy“ im extrahierten Ordner ausführen.
Bekannte Probleme und bewährte Methoden
Fehler bei der Installation von AzCopy
Treten Probleme bei der Installation von AzCopy auf, können Sie versuchen AzCopy mithilfe des Bash-Skripts im extrahierten azcopy
-Ordner auszuführen.
cd azcopy
./azcopy
Einschränken gleichzeitiger Schreibvorgänge beim Kopieren von Daten
Wenn Sie BLOBs oder Dateien mit AzCopy kopieren, denken Sie daran, dass eine andere Anwendung die Daten möglicherweise modifiziert, während Sie diese kopieren. Stellen Sie nach Möglichkeit sicher, dass die von Ihnen kopierten Daten während des Kopiervorgangs nicht verändert werden. Wenn Sie z. B. eine virtuelle Festplatte (Virtual Hard Disk, VHD) mit einem virtuellen Azure-Computer kopieren, stellen Sie sicher, dass derzeit keine anderen Anwendungen auf diese virtuelle Festplatte schreiben. Eine gute Möglichkeit hierfür bietet das Leasen der Ressource, die kopiert werden soll. Alternativ können Sie zunächst eine Momentaufnahme der virtuellen Festplatte (VHD) erstellen und anschließend die Momentaufnahme kopieren.
Wenn Sie andere Anwendungen nicht daran hindern können, während des Kopiervorgangs in BLOBs oder Dateien zu schreiben, beachten Sie, dass die kopierten Ressourcen bei der Beendigung des Auftrags möglicherweise nicht mehr vollständig mit den Quellressourcen übereinstimmen.
Ausführen mehrerer AzCopy-Prozesse
Sie können mehrere AzCopy-Prozesse auf einem einzelnen Client ausführen. Dazu müssen jedoch verschiedene Journalordner verwendet werden. Die Verwendung eines einzelnen Journalordners für mehrere AzCopy-Prozesse wird nicht unterstützt.
1. Prozess:
azcopy \
--source /mnt/myfiles1 \
--destination https://myaccount.blob.core.windows.net/mycontainer/myfiles1 \
--dest-key <key> \
--resume "/mnt/myazcopyjournal1"
2. Prozess:
azcopy \
--source /mnt/myfiles2 \
--destination https://myaccount.blob.core.windows.net/mycontainer/myfiles2 \
--dest-key <key> \
--resume "/mnt/myazcopyjournal2"
Nächste Schritte
Weitere Informationen zu Azure Storage und zu AzCopy finden Sie in den folgenden Ressourcen:
Azure Storage-Dokumentation:
- Einführung in Azure Storage
- Erstellen eines Speicherkontos
- Verwalten von Blobs mit dem Storage-Explorer
- Verwenden der Azure-Befehlszeilenschnittstelle mit Azure-Speicher
- Verwenden des BLOB-Speichers mit C++
- Gewusst wie: Verwenden von Blob Storage mit Java
- Gewusst wie: Verwenden von Blob Storage mit Node.js
- Gewusst wie: Verwenden von Blob Storage mit Python
Azure Storage-Blogbeiträge:
- Announcing AzCopy on Linux Preview (Ankündigung von AzCopy unter der Linux-Vorschau)
- Einführung in die Vorschau der Microsoft Azure Storage Data Movement-Bibliothek
- AzCopy: Einführung in das synchrone Kopieren und benutzerdefinierte Inhaltstypen
- AzCopy: Ab sofort allgemein verfügbar: AzCopy 3.0 sowie die Vorschau auf AzCopy 4.0 mit Tabellen- und Dateiunterstützung
- AzCopy: Optimiert für große Kopierszenarien
- AzCopy: Unterstützung des Lesezugriffs auf georedundanten Speicher
- AzCopy: Transfer data with restartable mode and SAS token (AzCopy: Übertragen von Daten mit neu startbarem Modus und SAS-Token)
- AzCopy: Verwenden des kontoübergreifenden Kopierblobs
- AzCopy: Hochladen/Herunterladen von Dateien für Microsoft Azure-Blobs