Trasferire dati con AzCopy in LinuxTransfer data with AzCopy on Linux

AzCopy è un'utilità della riga di comando progettata per la copia dei dati in/dall'archiviazione di BLOB e file di Microsoft Azure usando semplici comandi progettati per garantire prestazioni ottimali.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. È possibile copiare dati tra un file system e un account di archiviazione o tra più account di archiviazione.You can copy data between a file system and a storage account, or between storage accounts.

Importante

Questo articolo descrive una versione precedente di AzCopy.This article describes an older version of AzCopy. Per installare la versione più recente di AzCopy, vedere v10 AzCopy.To install the most recent version of AzCopy, see AzCopy v10.

Se si sceglie di installare la versione meno recente di AzCopy (AzCopy v8.1), quindi sono presenti più versioni di AzCopy v8.1 che è possibile scaricare.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 su Linux offre opzioni della riga di comando in stile POSIX per le piattaforme Linux.AzCopy on Linux targets Linux platforms offering POSIX style command-line options. AzCopy in Windows offre opzioni della riga di comando in stile Windows.AzCopy on Windows offers Windows style command-line options. Questo articolo descrive AzCopy in Linux.This article covers AzCopy on Linux.

Nota

A partire dalla versione 7.2 di AzCopy, le dipendenze di .NET Core vengono incluse nel pacchetto di AzCopy.Starting in AzCopy 7.2 version, the .NET Core dependencies are packaged with the AzCopy package. Se si usa la versione 7.2 o successiva, non è più necessario installare .NET Core come prerequisito.If you use 7.2 version or later, you no longer need to install .NET Core as a pre-requisite.

Scaricare e installare AzCopyDownload and install AzCopy

Installazione in LinuxInstallation on Linux

Nota

Potrebbe essere necessario installare le dipendenze di .NET Core 2.1 evidenziate in questo articolo sui prerequisiti per .NET Core a seconda della distribuzione.You might need to install .NET Core 2.1 dependencies highlighted in this .NET Core Pre-requisites article depending on your distribution.

Per le distribuzioni RHEL 7 installare le dipendenze ICU e libunwind: yum install -y libunwind icuFor RHEL 7 distributions, install ICU and libunwind dependencies: yum install -y libunwind icu

Per installare AzCopy in Linux (versione 7.2 o successive) è sufficiente estrarre un pacchetto tar ed eseguire lo script di installazione.Installing AzCopy on Linux (v7.2 or later) is as easy as extracting a tar package and running the install script.

Distribuzioni basate su RHEL 6: collegamento per il downloadRHEL 6 based distributions: download link

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

Tutte le altre distribuzioni Linux: collegamento per il downloadAll other Linux distributions: download link

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

Dopo aver installato AzCopy in Linux, è possibile rimuovere i file estratti.You can remove the extracted files once AzCopy on Linux is installed. In alternativa, se non si hanno privilegi di superuser, è anche possibile eseguire azcopy usando lo script della shell azcopy nella cartella estratta.Alternatively, if you do not have superuser privileges you can also run azcopy using the shell script azcopy in the extracted folder.

Installazione alternativa in UbuntuAlternative Installation on Ubuntu

Ubuntu 14.04Ubuntu 14.04

Aggiungere un'origine apt per il repository di prodotti Linux di Microsoft e installare AzCopy: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

Aggiungere un'origine apt per il repository di prodotti Linux di Microsoft e installare AzCopy: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

Scrittura del primo comando AzCopy Writing your first AzCopy command

La sintassi di base per i comandi di AzCopy è la seguente:The basic syntax for AzCopy commands is:

azcopy --source <source> --destination <destination> [Options]

Gli esempi seguenti illustrano vari scenari per la copia dei dati da e in BLOB e file di Microsoft Azure.The following examples demonstrate various scenarios for copying data to and from Microsoft Azure Blobs and Files. Per una spiegazione dettagliata dei parametri usati in ogni esempio, fare riferimento al menu azcopy --help.Refer to the azcopy --help menu for a detailed explanation of the parameters used in each sample.

BLOB: DownloadBlob: Download

Scaricare un singolo BLOBDownload single blob

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

Se la cartella /mnt/myfiles non esiste ancora, AzCopy la crea e scarica abc.txt nella nuova cartella.If the folder /mnt/myfiles does not exist, AzCopy creates it and downloads abc.txt into the new folder.

Scaricare un singolo BLOB da un'area secondariaDownload 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>

È necessario che sia abilitata l'archiviazione con ridondanza geografica con accesso in lettura.Note that you must have read-access geo-redundant storage enabled.

Scaricare tutti BLOBDownload all blobs

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

Si supponga che i BLOB seguenti risiedano nel contenitore specificato:Assume the following blobs reside in the specified container:

abc.txt
abc1.txt
abc2.txt
vd1/a.txt
vd1/abcd.txt

Dopo l'operazione di download, la directory /mnt/myfiles include i file seguenti: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

Se non si specifica l'opzione --recursive, non verrà scaricato alcun BLOB.If you do not specify option --recursive, no blob will be downloaded.

Scaricare i BLOB con il prefisso specificatoDownload blobs with specified prefix

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --include "a" \
    --recursive

Si supponga che i BLOB seguenti risiedano nel contenitore specificato.Assume the following blobs reside in the specified container. Vengono scaricati tutti i BLOB che iniziano con il prefisso a.All blobs beginning with the prefix a are downloaded.

abc.txt
abc1.txt
abc2.txt
xyz.txt
vd1\a.txt
vd1\abcd.txt

Dopo l'operazione di download, la cartella /mnt/myfiles include i file seguenti:After the download operation, the folder /mnt/myfiles includes the following files:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt

Il prefisso si applica alla directory virtuale che forma la prima parte del nome del BLOB.The prefix applies to the virtual directory, which forms the first part of the blob name. Nell'esempio precedente, la directory virtuale non corrisponde al prefisso specificato, quindi non viene scaricato alcun BLOB.In the example shown above, the virtual directory does not match the specified prefix, so no blob is downloaded. Se inoltre l'opzione --recursive non è specificata, AzCopy non scarica alcun BLOB.In addition, if the option --recursive is not specified, AzCopy does not download any blobs.

Impostare l'ora dell'ultima modifica dei file esportati sulla stessa ora dei BLOB di origineSet 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

È anche possibile escludere BLOB dall'operazione di download in base all'ora dell'ultima modifica.You can also exclude blobs from the download operation based on their last-modified time. Se ad esempio si vogliono escludere i BLOB in cui l'ora dell'ultima modifica è uguale o successiva a quella del file di destinazione, aggiungere l'opzione --exclude-newer .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

In alternativa, se si vogliono escludere i BLOB in cui l'ora dell'ultima modifica è uguale o precedente a quella del file di destinazione, aggiungere l'opzione --exclude-older .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: CaricamentoBlob: Upload

Caricare un singolo fileUpload single file

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

Se il contenitore di destinazione specificato non esiste, AzCopy ne crea uno e vi carica il file.If the specified destination container does not exist, AzCopy creates it and uploads the file into it.

Caricare un singolo file nella directory virtualeUpload 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>

Se la directory virtuale specificata non esiste, AzCopy carica il file in modo da includere la directory virtuale nel nome del BLOB, ovvero vd/abc.txt nell'esempio precedente.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).

Reindirizzare da stdinRedirect from stdin

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

Caricare tutti i fileUpload all files

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

Se si specifica l'opzione --recursive, il contenuto della directory specificata viene caricato nell'archiviazione BLOB in modo ricorsivo, ovvero vengono caricati anche tutte le sottocartelle e i relativi file.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. Si supponga ad esempio che i file seguenti risiedano nella cartella /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

Dopo l'operazione di caricamento, il contenitore include i file seguenti:After the upload operation, the container includes the following files:

abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt

Quando l'opzione --recursive non viene specificata, vengono caricati solo i tre file seguenti:When the option --recursive is not specified, only the following three files are uploaded:

abc.txt
abc1.txt
abc2.txt

Caricare i file corrispondenti ai criteri specificatiUpload files matching specified pattern

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --include "a*" \
    --recursive

Si supponga che i file seguenti risiedano nella cartella /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

Dopo l'operazione di caricamento, il contenitore include i file seguenti:After the upload operation, the container includes the following files:

abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt

Quando l'opzione --recursive non viene specificata, AzCopy ignora file presenti nelle sottodirectory:When the option --recursive is not specified, AzCopy skips files that are in sub-directories:

abc.txt
abc1.txt
abc2.txt

Specificare il tipo di contenuto MIME di un BLOB di destinazioneSpecify the MIME content type of a destination blob

Per impostazione predefinita, AzCopy imposta il tipo di contenuto di un BLOB di destinazione su application/octet-stream.By default, AzCopy sets the content type of a destination blob to application/octet-stream. È tuttavia possibile specificare il tipo di contenuto in modo esplicito tramite l'opzione --set-content-type [content-type].However, you can explicitly specify the content type via the option --set-content-type [content-type]. Questa sintassi imposta il tipo di contenuto per tutti i BLOB in un'operazione di caricamento.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"

Se si specifica l'opzione --set-content-type senza fornire un valore, AzCopy imposta il tipo di contenuto di ogni BLOB o file in base all'estensione di ciascuno di questi elementi.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

Personalizzazione del mapping del tipo di contenuto MIMECustomizing the MIME content type mapping

AzCopy usa un file di configurazione che contiene mapping di estensioni al tipo di contenuto corrispondente.AzCopy uses a configuration file that contains a mapping of file extension to content type. È possibile personalizzare questo mapping e aggiungere nuove coppie in base alle proprie esigenze.You can customize this mapping and add new pairs as needed. Il mapping si trova in /usr/lib/azcopy/AzCopyConfig.jsonThe mapping is located at /usr/lib/azcopy/AzCopyConfig.json

BLOB: CopiaBlob: Copy

Copiare un BLOB all'interno di un account di archiviazioneCopy 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>

Quando si copia un BLOB senza l'opzione --sync-copy, viene eseguita un'operazione di copia sul lato server.When you copy a blob without --sync-copy option, a server-side copy operation is performed.

Copiare un singolo BLOB tra account di archiviazioneCopy 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>

Quando si copia un BLOB senza l'opzione --sync-copy, viene eseguita un'operazione di copia sul lato server.When you copy a blob without --sync-copy option, a server-side copy operation is performed.

Copiare in BLOB singolo da un'area secondaria all'area primariaCopy 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>

È necessario che sia abilitata l'archiviazione con ridondanza geografica con accesso in lettura.Note that you must have read-access geo-redundant storage enabled.

Copiare un singolo BLOB e i relativi snapshot tra account di archiviazioneCopy 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

Dopo l'operazione di copia, il contenitore di destinazione include il BLOB e i relativi snapshot.After the copy operation, the target container includes the blob and its snapshots. Il contenitore include i BLOB seguenti e i relativi snapshot:The container includes the following blob and its snapshots:

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

Copiare in modo sincrono i BLOB tra account di archiviazioneSynchronously copy blobs across Storage accounts

Per impostazione predefinita, AzCopy copia i dati tra due endpoint di archiviazione in modo asincrono.AzCopy by default copies data between two storage endpoints asynchronously. L'operazione di copia viene pertanto eseguita in background sfruttando la capacità di larghezza di banda disponibile non limitata da alcun contratto di servizio relativo alla velocità di copia di un BLOB.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.

L'opzione --sync-copy garantisce che l'operazione di copia avvenga a velocità costante.The --sync-copy option ensures that the copy operation gets consistent speed. AzCopy esegue la copia sincrona scaricando i BLOB da copiare dall'origine specificata nella memoria locale, per poi caricarli nella destinazione dell'archiviazione BLOB.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, tuttavia, può generare costi aggiuntivi in uscita rispetto alla copia asincrona.--sync-copy might generate additional egress cost compared to asynchronous copy. Per evitare costi in uscita, si consiglia quindi di usare questa opzione in una macchina virtuale di Azure che si trova nella stessa area dell'account di archiviazione di origine.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.

File: DownloadFile: Download

Scaricare un singolo fileDownload single file

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

Se l'origine specificata è una condivisione file di Azure, è necessario specificare il nome file esatto, ad esempio abc.txt, per copiare un solo file oppure specificare l'opzione --recursive per copiare tutti i file nella condivisione in modo ricorsivo.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. Se si specificano sia il criterio del file che l'opzione --recursive contemporaneamente, verrà generato un errore.Attempting to specify both a file pattern and option --recursive together results in an error.

Scaricare tutti i fileDownload all files

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

Le cartelle vuote non vengono scaricate.Note that any empty folders are not downloaded.

File: CaricamentoFile: Upload

Caricare un singolo fileUpload single file

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

Caricare tutti i fileUpload all files

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

Le cartelle vuote non vengono caricate.Note that any empty folders are not uploaded.

Caricare i file corrispondenti ai criteri specificatiUpload files matching specified pattern

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

File: CopiaFile: Copy

Copiare tra condivisioni fileCopy 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

Quando si copia un file tra condivisioni file, viene eseguita un'operazione di copia sul lato server.When you copy a file across file shares, a server-side copy operation is performed.

Copiare dalla condivisione file al 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

Quando si copia un file dalla condivisione file al BLOB, viene eseguita un'operazione di copia sul lato server.When you copy a file from file share to blob, a server-side copy operation is performed.

Copy dal BLOB alla condivisione fileCopy 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

Quando si copia un file dal BLOB alla condivisione file, viene eseguita un'operazione di copia sul lato server.When you copy a file from blob to file share, a server-side copy operation is performed.

Copiare file in modo sincronoSynchronously copy files

È possibile specificare l'opzione --sync-copy per copiare i dati da archiviazione file ad archiviazione file, da archiviazione file ad archiviazione BLOB e da archiviazione BLOB ad archiviazione file in modo sincrono.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 esegue questa operazione scaricando i dati di origine nella memoria locale e caricandoli di nuovo nella destinazione.AzCopy runs this operation by downloading the source data to local memory, and then uploading it to destination. In questo caso, vengono applicati i costi in uscita standard.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

Durante la copia da Archiviazione file ad Archiviazione BLOB, il tipo di BLOB predefinito è il BLOB in blocchi. Per modificare il tipo di BLOB di destinazione, è possibile specificare l'opzione --blob-type page.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. I tipi disponibili sono page | block | append.Available types are page | block | append.

--sync-copy può generare costi aggiuntivi in uscita rispetto alla copia asincrona.Note that --sync-copy might generate additional egress cost comparing to asynchronous copy. Per evitare costi in uscita, si consiglia quindi di usare questa opzione in una macchina virtuale di Azure che si trova nella stessa area dell'account di archiviazione di origine.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.

Altre funzionalità di AzCopyOther AzCopy features

Copiare solo i dati che non esistono nella destinazioneOnly copy data that doesn't exist in the destination

I parametri --exclude-older e --exclude-newer consentono di escludere dalla copia, rispettivamente, le risorse di origine precedenti o più recenti.The --exclude-older and --exclude-newer parameters allow you to exclude older or newer source resources from being copied, respectively. Per copiare solo e risorse di origine che non esistono nella destinazione, è possibile specificare entrambi i parametri nel comando AzCopy: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

Usare un file di configurazione per specificare i parametri della riga di comandoUse a configuration file to specify command-line parameters

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

È possibile includere i parametri della riga di comando di AzCopy in un file di configurazione.You can include any AzCopy command-line parameters in a configuration file. AzCopy elabora i parametri nel file come se fossero stati specificati nella riga di comando, eseguendo una sostituzione diretta con i contenuti del file.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.

Si supponga che sia presente un file di configurazione denominato copyoperation, che contiene le righe seguenti.Assume a configuration file named copyoperation, that contains the following lines. Ogni parametro di AzCopy può essere specificato su una singola rigaEach 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

o su righe separate:or on separate lines:

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

Se il parametro viene suddiviso su due righe, l'operazione di AzCopy ha esito negativo, come mostrato di seguito per il parametro --source-key: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

Specificare una firma di accesso condivisoSpecify 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>

È anche possibile specificare una firma di accesso condiviso per il contenitore URI:You can also specify a SAS on the container URI:

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

Cartella del file journalJournal file folder

Ogni volta che si invia un comando ad AzCopy, l'utilità verifica se il file journal è presente nella cartella predefinita o in una cartella specificata dall'utente tramite questa opzione.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. Se il file journal non viene trovato in tali percorsi, AzCopy considera l'operazione come nuova e quindi crea un nuovo file journal.If the journal file does not exist in either place, AzCopy treats the operation as new and generates a new journal file.

Se il file journal esiste, AzCopy verifica se la riga di comando di input corrisponde alla riga di comando nel file journal.If the journal file does exist, AzCopy checks whether the command line that you input matches the command line in the journal file. Se le righe di comando corrispondono, AzCopy avvia la ripresa dell'operazione incompleta.If the two command lines match, AzCopy resumes the incomplete operation. Se non corrispondono, viene richiesto se si vuole sovrascrivere il file journal per avviare una nuova operazione o annullare l'operazione corrente.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.

Se si vuole usare il percorso predefinito per il file journal: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

Se si omette l'opzione--resume o si specifica l'opzione --resume senza il percorso della cartella, come illustrato sopra, AzCopy creerà il file journal nel percorso predefinito, ovvero ~\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. Se il file journal esiste già, AzCopy riprenderà l'operazione in base al file journal.If the journal file already exists, then AzCopy resumes the operation based on the journal file.

Se si vuole specificare un percorso personalizzato per il file journal: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 questo esempio viene creato il file journal, nel caso in cui non esista già:This example creates the journal file if it does not already exist. Se esiste, AzCopy riprenderà l'operazione in base al file journal.If it does exist, then AzCopy resumes the operation based on the journal file.

Se si vuole riprendere un'operazione di AzCopy, ripetere lo stesso comando.If you want to resume an AzCopy operation, repeat the same command. AzCopy in Linux richiederà la conferma: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)

Output di log dettagliatiOutput verbose logs

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

Specificare il numero di operazioni simultanee da avviareSpecify the number of concurrent operations to start

L'opzione --parallel-level specifica il numero di operazioni di copia simultanee.Option --parallel-level specifies the number of concurrent copy operations. Per impostazione predefinita, AzCopy avvia un determinato numero di operazioni simultanee per aumentare la velocità effettiva di trasferimento dei dati.By default, AzCopy starts a certain number of concurrent operations to increase the data transfer throughput. Il numero di operazioni simultanee è uguale a 8 volte il numero di processori disponibili.The number of concurrent operations is equal eight times the number of processors you have. Se AzCopy è in esecuzione in una rete con larghezza di banda ridotta, è possibile specificare un numero inferiore per --parallel-level in modo da evitare errori generati dalla competizione tra le risorse.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.

Suggerimento

Per visualizzare l'elenco completo dei parametri di AzCopy, vedere il menu 'azcopy - help'.To view the complete list of AzCopy parameters, check out 'azcopy --help' menu.

Passaggi di installazione per AzCopy 7.1 e versioni precedentiInstallation Steps for AzCopy 7.1 and earlier versions

AzCopy in Linux (versione 7.1 e precedenti) richiede il framework .NET Core.AzCopy on Linux (v7.1 and earlier only) requires the .NET Core framework. Le istruzioni di installazione sono disponibili nella pagina di installazione di .NET Core.Installation instructions are available on the .NET Core installation page.

Ad esempio, iniziare installando .NET Core su Ubuntu 16.10.For example, begin by installing .NET Core on Ubuntu 16.10. Per le istruzioni di installazione più recenti, vedere la pagina di installazione di .NET Core in Linux.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

Dopo aver installato .NET Core, scaricare e installare AzCopy.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

Dopo aver installato AzCopy in Linux, è possibile rimuovere i file estratti.You can remove the extracted files once AzCopy on Linux is installed. In alternativa, se non si hanno privilegi di superuser, è possibile eseguire azcopy usando lo script della shell azcopy nella cartella estratta.Alternatively if you do not have superuser privileges, you can also run azcopy using the shell script azcopy in the extracted folder.

Problemi noti e procedure consigliateKnown issues and best practices

Errore durante l'installazione di AzCopyError Installing AzCopy

Se si verificano problemi con l'installazione di AzCopy, si può provare a eseguire AzCopy usando lo script bash nella cartella azcopy estratta.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

Limitare le scritture simultanee durante la copia dei datiLimit concurrent writes while copying data

Durante la copia di BLOB o file con AzCopy, tenere presente che altre applicazioni potrebbero modificare i dati mentre è in corso la copia.When you copy blobs or files with AzCopy, keep in mind that another application may be modifying the data while you are copying it. Se possibile, assicurarsi che i dati copiati non vengano modificati durante l'operazione di copia.If possible, ensure that the data you are copying is not being modified during the copy operation. Ad esempio, se si copia un file VHD associato a una macchina virtuale di Azure, verificare che altre applicazioni non stiano scrivendo nel file VHD durante la copia.For example, when copying a VHD associated with an Azure virtual machine, make sure that no other applications are currently writing to the VHD. Un buon metodo per eseguire questa operazione è tramite leasing della risorsa da copiare.A good way to do this is by leasing the resource to be copied. In alternativa, è prima possibile creare uno snapshot del file VHD e quindi copiare lo snapshot.Alternately, you can create a snapshot of the VHD first and then copy the snapshot.

Se non è possibile evitare che altre applicazioni scrivano nei BLOB o nei file durante l'operazione di copia, tenere presente che al termine del processo la parità delle risorse copiate con le risorse di origine potrebbe non essere completa.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.

Esecuzione di più processi AzCopyRunning multiple AzCopy processes

È possibile eseguire più processi AzCopy su un singolo client a condizione di usare cartelle journal diverse.You may run multiple AzCopy processes on a single client providing that you use different journal folders. Non è supportato l'uso di una singola cartella journal per più processi AzCopy.Using a single journal folder for multiple AzCopy processes is not supported.

Primo processo:1st process:

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

Secondo processo:2nd process:

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

Passaggi successiviNext steps

Per altre informazioni su Archiviazione di Azure e AzCopy, vedere le risorse seguenti:For more information about Azure Storage and AzCopy, see the following resources:

Documentazione di Archiviazione di AzureAzure Storage documentation:

Post del blog di Archiviazione di Azure:Azure Storage blog posts: