Übertragen von Daten mit AzCopy unter LinuxTransfer data with AzCopy on 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.AzCopy is a command-line utility designed for copying data to/from Microsoft Azure Blob and File storage, using simple commands designed for optimal performance. Sie können Daten zwischen einem Dateisystem und einem Speicherkonto oder zwischen Speicherkonten kopieren.You can copy data between a file system and a storage account, or between storage accounts.

Wichtig

Dieser Artikel beschreibt eine ältere Version von AzCopy.This article describes an older version of AzCopy. Informationen zur Installation der neuesten Version von AzCopy finden Sie unter AzCopy v10.To install the most recent version of AzCopy, see AzCopy v10.

Wenn Sie die ältere Version von AzCopy (AzCopy v8.1) installieren möchten, stehen mehrere Versionen für den Download zur Verfügung.If you choose to install the older version of AzCopy (AzCopy v8.1), then there are multiple versions of AzCopy v8.1 that you can download. AzCopy unter Linux ist auf Linux-Plattformen ausgerichtet, die Befehlszeilenoptionen im POSIX-Format bieten.AzCopy on Linux targets Linux platforms offering POSIX style command-line options. AzCopy unter Windows bietet Befehlszeilenoptionen im Windows-Format.AzCopy on Windows offers Windows style command-line options. Dieser Artikel behandelt AzCopy unter Linux.This article covers AzCopy on Linux.

Hinweis

Ab Version 7.2. von AzCopy werden die .NET Core-Abhängigkeiten im Paket mit AzCopy bereitgestellt.Starting in AzCopy 7.2 version, the .NET Core dependencies are packaged with the AzCopy package. Wenn Sie Version 7.2 oder höher verwenden, ist die Installation von .NET Core nicht mehr erforderlich.If you use 7.2 version or later, you no longer need to install .NET Core as a pre-requisite.

Herunterladen und Installieren von AzCopyDownload and install AzCopy

Installation unter LinuxInstallation on 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.You might need to install .NET Core 2.1 dependencies highlighted in this .NET Core Pre-requisites article depending on your distribution.

Installieren Sie bei RHEL 7-Distributionen ICU- und libunwind-Abhängigkeiten: yum install -y libunwind icuFor RHEL 7 distributions, install ICU and libunwind dependencies: 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.Installing AzCopy on Linux (v7.2 or later) is as easy as extracting a tar package and running the install script.

RHEL 6-basierte Distributionen: DownloadlinkRHEL 6 based distributions: download link

wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinuxrhel6
tar -xf azcopy.tar.gz
sudo ./install.sh

Alle anderen Linux-Distributionen: DownloadlinkAll other Linux distributions: download link

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.You can remove the extracted files once AzCopy on Linux is installed. Wenn Sie nicht über Administratorrechte verfügen, können Sie azcopy auch mit dem Shellskript „azcopy“ im extrahierten Ordner ausführen.Alternatively, if you do not have superuser privileges you can also run azcopy using the shell script azcopy in the extracted folder.

Alternative Installation unter UbuntuAlternative Installation on Ubuntu

Ubuntu 14.04Ubuntu 14.04

Apt-Quelle für das Microsoft-Produktrepository für Linux hinzufügen und AzCopy installieren:Add apt source for Microsoft Linux product repository and install AzCopy:

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.04Ubuntu 16.04

Apt-Quelle für das Microsoft-Produktrepository für Linux hinzufügen und AzCopy installieren:Add apt source for Microsoft Linux product repository and install AzCopy:

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-BefehlsWriting your first AzCopy command

Die grundlegende Syntax für AzCopy-Befehle ist:The basic syntax for AzCopy commands is:

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.The following examples demonstrate various scenarios for copying data to and from Microsoft Azure Blobs and Files. Für eine detailliertere Erklärung der in jedem Beispiel verwendeten Parameter, wechseln Sie zum azcopy --help-Menü.Refer to the azcopy --help menu for a detailed explanation of the parameters used in each sample.

Blob: DownloadBlob: Download

Herunterladen eines einzelnen BlobsDownload single blob

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.If the folder /mnt/myfiles does not exist, AzCopy creates it and downloads abc.txt into the new folder.

Ein einzelnes Blob aus der sekundären Region herunterladenDownload single blob from secondary region

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.Note that you must have read-access geo-redundant storage enabled.

Herunterladen aller BlobsDownload all 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:Assume the following blobs reside in the specified 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:After the download operation, the directory /mnt/myfiles includes the following files:

/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.If you do not specify option --recursive, no blob will be downloaded.

Herunterladen von Blobs mit angegebenem PräfixDownload blobs with specified prefix

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.Assume the following blobs reside in the specified container. Alle Blobs, die mit dem Präfix a beginnen, werden heruntergeladen.All blobs beginning with the prefix a are downloaded.

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:After the download operation, the folder /mnt/myfiles includes the following files:

/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.The prefix applies to the virtual directory, which forms the first part of the blob name. Im obigen Beispiel stimmt das virtuelle Verzeichnis nicht mit dem angegebenen Präfix überein. Daher wird kein Blob heruntergeladen.In the example shown above, the virtual directory does not match the specified prefix, so no blob is downloaded. Darüber hinaus lädt AzCopy keine Blobs herunter, wenn die Option --recursive nicht angegeben ist.In addition, if the option --recursive is not specified, AzCopy does not download any blobs.

Für exportierte Dateien und Quell-Blobs dieselbe Uhrzeit der letzten Änderung festlegenSet the last-modified time of exported files to be same as the source blobs

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.You can also exclude blobs from the download operation based on their last-modified time. 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:For example, if you want to exclude blobs whose last modified time is the same or newer than the destination file, add the --exclude-newer option:

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:Or if you want to exclude blobs whose last modified time is the same or older than the destination file, add the --exclude-older option:

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --preserve-last-modified-time \
    --exclude-older

Blob: HochladenBlob: Upload

Hochladen einer einzelnen DateiUpload single file

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.If the specified destination container does not exist, AzCopy creates it and uploads the file into it.

Hochladen einer einzelnen Datei in ein virtuelles VerzeichnisUpload single file to virtual directory

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).If the specified virtual directory does not exist, AzCopy uploads the file to include the virtual directory in the blob name (e.g., vd/abc.txt in the example above).

Umleitung von STDINRedirect from stdin

gzip myarchive.tar -c | azcopy \
    --destination https://myaccount.blob.core.windows.net/mycontainer/mydir/myarchive.tar.gz \
    --dest-key <key>

Hochladen aller DateienUpload all files

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.Specifying option --recursive uploads the contents of the specified directory to Blob storage recursively, meaning that all subfolders and their files are uploaded as well. Nehmen Sie z. B. an, die folgenden Dateien befinden sich im Ordner /mnt/myfiles:For instance, assume the following files reside in folder /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:After the upload operation, the container includes the following files:

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:When the option --recursive is not specified, only the following three files are uploaded:

abc.txt
abc1.txt
abc2.txt

Hochladen von Dateien, die einem angegebenen Muster entsprechenUpload files matching specified pattern

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:Assume the following files reside in folder /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:After the upload operation, the container includes the following files:

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:When the option --recursive is not specified, AzCopy skips files that are in sub-directories:

abc.txt
abc1.txt
abc2.txt

Angeben des MIME-Inhaltstyps für Ziel-BlobsSpecify the MIME content type of a destination blob

AzCopy legt den Inhaltstyp eines Zielblobs standardmäßig als application/octet-streamfest.By default, AzCopy sets the content type of a destination blob to application/octet-stream. Sie können den Inhaltstyp jedoch mit der Option --set-content-type [content-type] explizit angeben.However, you can explicitly specify the content type via the option --set-content-type [content-type]. Mit dieser Syntax wird der Inhaltstyp für alle Blobs in einem Hochladevorgang festgelegt.This syntax sets the content type for all blobs in an upload operation.

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.If the option --set-content-type is specified without a value, then AzCopy sets each blob or file's content type according to its file extension.

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-InhaltstypenCustomizing the MIME content type mapping

Für AzCopy wird eine Konfigurationsdatei verwendet, die eine Zuordnung der Dateierweiterung zum Inhaltstyp enthält.AzCopy uses a configuration file that contains a mapping of file extension to content type. Sie können diese Zuordnung anpassen und bei Bedarf neue Paare hinzufügen.You can customize this mapping and add new pairs as needed. Die Zuordnung befindet sich unter /usr/lib/azcopy/AzCopyConfig.json.The mapping is located at /usr/lib/azcopy/AzCopyConfig.json

Blob: KopierenBlob: Copy

Kopieren eines einzelnen Blobs innerhalb eines Azure Storage-KontosCopy single blob within Storage account

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.When you copy a blob without --sync-copy option, a server-side copy operation is performed.

Kopieren von Blobs zwischen Azure Storage-KontenCopy single blob across Storage accounts

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.When you copy a blob without --sync-copy option, a server-side copy operation is performed.

Kopieren eines einzelnen Blobs aus der sekundären Region in die primäre RegionCopy single blob from secondary region to primary 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.Note that you must have read-access geo-redundant storage enabled.

Kopieren eines einzelnen Blobs und seiner Momentaufnahmen zwischen Storage-KontenCopy single blob and its snapshots across Storage accounts

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.After the copy operation, the target container includes the blob and its snapshots. Der Container enthält den folgenden Blob und seine Momentaufnahmen:The container includes the following blob and its snapshots:

abc.txt
abc (2013-02-25 080757).txt
abc (2014-02-21 150331).txt

Synchrones Kopieren von Blobs zwischen Storage-KontenSynchronously copy blobs across Storage accounts

Standardmäßig kopiert AzCopy Daten zwischen zwei Speicherendpunkten auf asynchrone Weise.AzCopy by default copies data between two storage endpoints asynchronously. 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.Therefore, the copy operation runs in the background using spare bandwidth capacity that has no SLA in terms of how fast a blob is copied.

Die Option --sync-copy gewährleistet, dass der jeweilige Kopiervorgang mit gleichmäßiger Geschwindigkeit erfolgt.The --sync-copy option ensures that the copy operation gets consistent speed. 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 performs the synchronous copy by downloading the blobs to copy from the specified source to local memory, and then uploading them to the Blob storage destination.

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.--sync-copy might generate additional egress cost compared to asynchronous copy. Zum Vermeiden von Ausgangskosten empfiehlt sich die Verwendung dieser Option auf einem Azure-VM, der sich in derselben Region wie das Quellspeicherkonto befindet.The recommended approach is to use this option in an Azure VM, that is in the same region as your source storage account to avoid egress cost.

Datei: DownloadFile: Download

Herunterladen einer einzelnen DateiDownload single file

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 angeben (z.B. abc.txt), um eine einzelne Datei herunterzuladen, oder die Option --recursive, um alle Dateien in der Freigabe rekursiv herunterzuladen.If the specified source is an Azure file share, then you must either specify the exact file name, (e.g. abc.txt) to download a single file, or specify option --recursive to download all files in the share recursively. Wenn Sie sowohl ein Dateimuster als auch die Option --recursive angeben, führt dies zu einem Fehler.Attempting to specify both a file pattern and option --recursive together results in an error.

Herunterladen aller DateienDownload all files

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.Note that any empty folders are not downloaded.

Datei: HochladenFile: Upload

Hochladen einer einzelnen DateiUpload single file

azcopy \
    --source /mnt/myfiles/abc.txt \
    --destination https://myaccount.file.core.windows.net/myfileshare/abc.txt \
    --dest-key <key>

Hochladen aller DateienUpload all files

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.Note that any empty folders are not uploaded.

Hochladen von Dateien, die einem angegebenen Muster entsprechenUpload files matching specified pattern

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.file.core.windows.net/myfileshare/ \
    --dest-key <key> \
    --include "ab*" \
    --recursive

Datei: KopierenFile: Copy

Kopieren zwischen DateifreigabenCopy across file shares

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.When you copy a file across file shares, a server-side copy operation is performed.

Kopieren aus einer Dateifreigabe zum BlobCopy from file share to 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.When you copy a file from file share to blob, a server-side copy operation is performed.

Kopieren vom Blob zur DateifreigabeCopy from blob to file share

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.When you copy a file from blob to file share, a server-side copy operation is performed.

Synchrones Kopieren von DateienSynchronously copy files

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.You can specify the --sync-copy option to copy data from File Storage to File Storage, from File Storage to Blob Storage and from Blob Storage to File Storage synchronously. AzCopy führt diesen Vorgang aus, indem die Quelldaten in den lokalen Speicher heruntergeladen und dann in das Ziel hochgeladen werden.AzCopy runs this operation by downloading the source data to local memory, and then uploading it to destination. In diesem Fall finden Standardausgangskosten Anwendung.In this case, standard egress cost applies.

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.When copying from File Storage to Blob Storage, the default blob type is block blob, user can specify option --blob-type page to change the destination blob type. Die Typen page | block | append sind verfügbar.Available types are page | block | append.

Beachten Sie, dass --sync-copy zu zusätzlichen Ausgangskosten im Vergleich zu asynchronen Kopien führen kann.Note that --sync-copy might generate additional egress cost comparing to asynchronous copy. Zum Vermeiden von Ausgangskosten empfiehlt sich die Verwendung dieser Option auf einem Azure-VM, der sich in derselben Region wie das Quellspeicherkonto befindet.The recommended approach is to use this option in an Azure VM, that is in the same region as your source storage account to avoid egress cost.

Andere AzCopy-FunktionenOther AzCopy features

Nur Daten kopieren, die im Ziel nicht vorhanden sind.Only copy data that doesn't exist in the destination

Die Parameter --exclude-older und --exclude-newer erlauben Ihnen, jeweils ältere oder neuere Quellressourcen vom Kopieren auszuschließen.The --exclude-older and --exclude-newer parameters allow you to exclude older or newer source resources from being copied, respectively. Falls Sie nur Quellressourcen kopieren wollen, die im Ziel nicht existieren, können Sie beide Parameter im AzCopy-Befehl angeben.If you only want to copy source resources that don't exist in the destination, you can specify both parameters in the AzCopy command:

--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 anzugebenUse a configuration file to specify command-line parameters

azcopy --config-file "azcopy-config.ini"

Sie können beliebige AzCopy-Befehlszeilenparameter in eine Konfigurationsdatei einfügen.You can include any AzCopy command-line parameters in a configuration file. 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.AzCopy processes the parameters in the file as if they had been specified on the command line, performing a direct substitution with the contents of the file.

Nehmen wir an, eine Konfigurationsdatei namens copyoperation enthält die folgenden Zeilen.Assume a configuration file named copyoperation, that contains the following lines. Jeder AzCopy-Parameter kann in einer einzelnen Zeile angegeben werden.Each AzCopy parameter can be specified on a single line.

--source http://myaccount.blob.core.windows.net/mycontainer --destination /mnt/myfiles --source-key <sourcekey> --recursive --quiet

oder in verschiedenen Zeilen:or on separate lines:

--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:AzCopy fails if you split the parameter across two lines, as shown here for the --source-key parameter:

http://myaccount.blob.core.windows.net/mycontainer
/mnt/myfiles
--sourcekey
<sourcekey>
--recursive
--quiet

Angeben einer Shared Access Signature (SAS)Specify a 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:You can also specify a SAS on the container URI:

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1/?SourceSASToken \
    --destination /mnt/myfiles \
    --recursive

JournaldateiordnerJournal file folder

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.Each time you issue a command to AzCopy, it checks whether a journal file exists in the default folder, or whether it exists in a folder that you specified via this option. Wenn die Journaldatei in keinem dieser Ordner vorhanden ist, behandelt AzCopy diesen Vorgang als neuen Vorgang und generiert somit eine neue Journaldatei.If the journal file does not exist in either place, AzCopy treats the operation as new and generates a new journal file.

Wenn die Journaldatei vorhanden ist, prüft AzCopy, ob die von Ihnen eingegebene Befehlszeile mit der Befehlszeile in der Journaldatei übereinstimmt.If the journal file does exist, AzCopy checks whether the command line that you input matches the command line in the journal file. Wenn die beiden Befehlszeilen übereinstimmen, setzt AzCopy den unvollständigen Vorgang fort.If the two command lines match, AzCopy resumes the incomplete operation. Wenn sie nicht übereinstimmen, wird der Benutzer aufgefordert, entweder die Journaldatei zu überschreiben, um einen neuen Vorgang zu starten, oder den aktuellen Vorgang abzubrechen.If they do not match, AzCopy prompts user to either overwrite the journal file to start a new operation, or to cancel the current operation.

Falls Sie den Standardspeicherort für die Journaldatei verwenden wollen:If you want to use the default location for the journal file:

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.If you omit option --resume, or specify option --resume without the folder path, as shown above, AzCopy creates the journal file in the default location, which is ~\Microsoft\Azure\AzCopy. Wenn die Journaldatei bereits vorhanden ist, setzt AzCopy den Vorgang auf Basis der Journaldatei fort.If the journal file already exists, then AzCopy resumes the operation based on the journal file.

Falls Sie einen benutzerdefinierten Speicherort für die Journaldatei angeben wollen:If you want to specify a custom location for the journal file:

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.This example creates the journal file if it does not already exist. Wenn sie vorhanden ist, setzt AzCopy den Vorgang auf Basis der Journaldatei fort.If it does exist, then AzCopy resumes the operation based on the journal file.

Falls Sie einen AzCopy-Vorgang fortsetzen möchten, wiederholen Sie den gleichen Befehl.If you want to resume an AzCopy operation, repeat the same command. AzCopy unter Linux wird Sie dann zur Bestätigung auffordern:AzCopy on Linux then will prompt for confirmation:

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 AusgabeprotokolleOutput verbose logs

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --verbose

Angeben der Anzahl der zu startenden gleichzeitigen VorgängenSpecify the number of concurrent operations to start

Die Option --parallel-level gibt die Anzahl der gleichzeitigen Kopiervorgänge an.Option --parallel-level specifies the number of concurrent copy operations. AzCopy startet standardmäßig eine bestimmte Anzahl gleichzeitiger Vorgänge zum Erhöhen des Datenübertragungsdurchsatzes.By default, AzCopy starts a certain number of concurrent operations to increase the data transfer throughput. Die Anzahl gleichzeitiger Vorgänge entspricht der Anzahl der verfügbaren Prozessoren achtmal.The number of concurrent operations is equal eight times the number of processors you have. 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.If you are running AzCopy across a low-bandwidth network, you can specify a lower number for --parallel-level to avoid failure caused by resource competition.

Tipp

Um die vollständige Liste der AzCopy-Parameter angezeigt zu bekommen, sehen Sie sich das Menü „azcopy --help“ an.To view the complete list of AzCopy parameters, check out 'azcopy --help' menu.

Installationsschritte für AzCopy 7.1 und ältere VersionenInstallation Steps for AzCopy 7.1 and earlier versions

AzCopy unter Linux (nur v7.1 und ältere Versionen) erfordert das .NET Core-Framework.AzCopy on Linux (v7.1 and earlier only) requires the .NET Core framework. Installationsanweisungen finden Sie auf der Seite zur .NET Core-Installation.Installation instructions are available on the .NET Core installation page.

Beginnen Sie beispielsweise mit der Installation von .NET Core unter Ubuntu 16.10.For example, begin by installing .NET Core on Ubuntu 16.10. Das neueste Installationshandbuch finden Sie auf der .NET Core unter Linux-Installationsseite.For the latest installation guide, visit .NET Core on Linux installation page.

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.Once you have installed .NET Core, download and install AzCopy.

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.You can remove the extracted files once AzCopy on Linux is installed. Wenn Sie nicht über Administratorrechte verfügen, können Sie azcopy auch mit dem Shellskript „azcopy“ im extrahierten Ordner ausführen.Alternatively if you do not have superuser privileges, you can also run azcopy using the shell script azcopy in the extracted folder.

Bekannte Probleme und bewährte MethodenKnown issues and best practices

Fehler bei der Installation von AzCopyError Installing AzCopy

Treten Probleme bei der Installation von AzCopy auf, können Sie versuchen AzCopy mithilfe des Bash-Skripts im extrahierten azcopy-Ordner auszuführen.If you encounter issues with AzCopy installation, you may try to run AzCopy using the bash script in the extracted azcopy folder.

cd azcopy
./azcopy

Einschränken gleichzeitiger Schreibvorgänge beim Kopieren von DatenLimit concurrent writes while copying data

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.When you copy blobs or files with AzCopy, keep in mind that another application may be modifying the data while you are copying it. Stellen Sie nach Möglichkeit sicher, dass die von Ihnen kopierten Daten während des Kopiervorgangs nicht verändert werden.If possible, ensure that the data you are copying is not being modified during the copy operation. 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.For example, when copying a VHD associated with an Azure virtual machine, make sure that no other applications are currently writing to the VHD. Eine gute Möglichkeit hierfür bietet das Leasen der Ressource, die kopiert werden soll.A good way to do this is by leasing the resource to be copied. Alternativ können Sie zunächst eine Momentaufnahme der virtuellen Festplatte (VHD) erstellen und anschließend die Momentaufnahme kopieren.Alternately, you can create a snapshot of the VHD first and then copy the snapshot.

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.If you cannot prevent other applications from writing to blobs or files while they are being copied, then keep in mind that by the time the job finishes, the copied resources may no longer have full parity with the source resources.

Ausführen mehrerer AzCopy-ProzesseRunning multiple AzCopy processes

Sie können mehrere AzCopy-Prozesse auf einem einzelnen Client ausführen. Dazu müssen jedoch verschiedene Journalordner verwendet werden.You may run multiple AzCopy processes on a single client providing that you use different journal folders. Die Verwendung eines einzelnen Journalordners für mehrere AzCopy-Prozesse wird nicht unterstützt.Using a single journal folder for multiple AzCopy processes is not supported.

1. Prozess:1st process:

azcopy \
    --source /mnt/myfiles1 \
    --destination https://myaccount.blob.core.windows.net/mycontainer/myfiles1 \
    --dest-key <key> \
    --resume "/mnt/myazcopyjournal1"

2. Prozess:2nd process:

azcopy \
    --source /mnt/myfiles2 \
    --destination https://myaccount.blob.core.windows.net/mycontainer/myfiles2 \
    --dest-key <key> \
    --resume "/mnt/myazcopyjournal2"

Nächste SchritteNext steps

Weitere Informationen zu Azure Storage und zu AzCopy finden Sie in den folgenden Ressourcen:For more information about Azure Storage and AzCopy, see the following resources:

Azure Storage-Dokumentation:Azure Storage documentation:

Azure Storage-Blogbeiträge:Azure Storage blog posts: