Trasferire dati con AzCopy in Linux

AzCopy in Linux è un'utilità della riga di comando progettata la copia dei dati da e verso l'archiviazione BLOB e file di Microsoft Azure usando semplici comandi con prestazioni ottimali. È possibile copiare dati da un oggetto a un altro all'interno dell'account di archiviazione o tra account di archiviazione.

Esistono due versioni di AzCopy che è possibile scaricare. AzCopy in Linux viene compilato con .NET Core Framework per le piattaforme Linux e offre opzioni della riga di comando in stile POSIX. AzCopy in Windows viene compilato con .NET Framework e offre opzioni della riga di comando in stile Windows. Questo articolo descrive AzCopy in Linux.

Scaricare e installare AzCopy

Installazione in Linux

AzCopy in Linux richiede .NET Core Framework sulla piattaforma. Vedere le istruzioni per l'installazione nella pagina di .NET Core.

Ecco un esempio di installazione di .NET Core in Ubuntu 16.10. Per le istruzioni di installazione più recenti, vedere la pagina di installazione di .NET Core in Linux.

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-dev-1.0.3

Dopo aver installato .NET Core, scaricare e installare 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. In alternativa, se non si hanno autorizzazioni come superuser, è possibile eseguire AzCopy usando lo script della shell 'azcopy' nella cartella estratta.

Installazione alternativa in Ubuntu

Ubuntu 14.04

Aggiungere un'origine apt per .Net Core:

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893

Aggiungere un'origine apt per il repository di prodotti Linux di Microsoft e installare AzCopy:

curl https://packages.microsoft.com/config/ubuntu/14.04/prod.list > ./microsoft-prod.list
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
sudo apt-get update
sudo apt-get install azcopy

Ubuntu 16.04

Aggiungere un'origine apt per .Net Core:

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list' 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893

Aggiungere un'origine apt per il repository di prodotti Linux di Microsoft e installare AzCopy:

curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > ./microsoft-prod.list
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
sudo apt-get update
sudo apt-get install azcopy

Ubuntu 16.10

Aggiungere un'origine apt per .Net Core:

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

Aggiungere un'origine apt per il repository di prodotti Linux di Microsoft e installare AzCopy:

curl https://packages.microsoft.com/config/ubuntu/16.10/prod.list > ./microsoft-prod.list
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
sudo apt-get update
sudo apt-get install azcopy

Scrittura del primo comando AzCopy

La sintassi di base per i comandi di AzCopy è la seguente:

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. Per una spiegazione dettagliata dei parametri usati in ogni esempio, fare riferimento al menu azcopy --help.

BLOB: scaricare

Scaricare un singolo BLOB

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

Se la cartella /mnt/myfiles non esiste ancora, AzCopy la crea e scarica abc.txt nella nuova cartella.

Scaricare un singolo BLOB da un'area secondaria

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

È necessario che sia abilitata l'archiviazione con ridondanza geografica con accesso in lettura.

Scaricare tutti BLOB

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:

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:

/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.

Scaricare i BLOB con il prefisso specificato

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. Vengono scaricati tutti i BLOB che iniziano con il prefisso a.

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:

/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. Nell'esempio precedente, la directory virtuale non corrisponde al prefisso specificato, quindi non viene scaricato alcun BLOB. Se inoltre l'opzione --recursive non è specificata, AzCopy non scarica alcun BLOB.

Impostare l'ora dell'ultima modifica dei file esportati sulla stessa ora dei BLOB di origine

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. 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 .

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 .

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

BLOB: caricare

Caricare un singolo file

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

Se il contenitore di destinazione specificato non esiste, AzCopy ne crea uno e vi carica il file.

Caricare un singolo file nella directory virtuale

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

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.

Caricare tutti i file

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

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:

abc.txt
abc1.txt
abc2.txt

Caricare i file corrispondenti ai criteri specificati

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:

/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:

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:

abc.txt
abc1.txt
abc2.txt

Specificare il tipo di contenuto MIME di un BLOB di destinazione

Per impostazione predefinita, AzCopy imposta il tipo di contenuto di un BLOB di destinazione su application/octet-stream. È tuttavia possibile specificare il tipo di contenuto in modo esplicito tramite l'opzione --set-content-type [content-type]. Questa sintassi imposta il tipo di contenuto per tutti i BLOB in un'operazione di caricamento.

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.

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/myContainer/ \
    --dest-key <key> \
    --include "ab" \
    --set-content-type

BLOB: copiare

Copiare un BLOB all'interno di un account di archiviazione

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1 \
    --destination https://myaccount.blob.core.windows.net/mycontainer2 \
    --source-key <key> \
    --dest-key <key> \
    --include "abc.txt"

Quando si copia un BLOB senza l'opzione --sync-copy, viene eseguita un'operazione di copia sul lato server.

Copiare un singolo BLOB tra account di archiviazione

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"

Quando si copia un BLOB senza l'opzione --sync-copy, viene eseguita un'operazione di copia sul lato server.

Copiare in BLOB singolo da un'area secondaria all'area primaria

azcopy \
    --source https://myaccount1-secondary.blob.core.windows.net/mynewcontainer1 \
    --destination https://myaccount2.blob.core.windows.net/mynewcontainer2 \
    --source-key <key1> \
    --dest-key <key2> \
    --include "abc.txt"

È necessario che sia abilitata l'archiviazione con ridondanza geografica con accesso in lettura.

Copiare un singolo BLOB e i relativi snapshot tra account di archiviazione

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. Il contenitore include i BLOB seguenti e i relativi snapshot:

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

Copiare in modo sincrono i BLOB tra account di archiviazione

Per impostazione predefinita, AzCopy copia i dati tra due endpoint di archiviazione in modo asincrono. 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.

L'opzione --sync-copy garantisce che l'operazione di copia avvenga a velocità costante. 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 \
    --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. 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.

File: scaricare

Scaricare un singolo file

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

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. Se si specificano sia il criterio del file che l'opzione --recursive contemporaneamente, verrà generato un errore.

Scaricare tutti i file

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

Le cartelle vuote non vengono scaricate.

File: caricare

Caricare un singolo file

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

Caricare tutti i file

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

Le cartelle vuote non vengono caricate.

Caricare i file corrispondenti ai criteri specificati

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

File: copia

Copiare tra condivisioni file

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.

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

Copy dal BLOB alla condivisione file

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.

Copiare file in modo sincrono

È 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. AzCopy esegue questa operazione scaricando i dati di origine nella memoria locale e caricandoli di nuovo nella destinazione. In questo caso, vengono applicati i costi in uscita standard.

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 /BlobType:page.

--sync-copy può generare costi aggiuntivi in uscita rispetto alla copia asincrona. 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.

Altre funzionalità di AzCopy

Copiare solo i dati che non esistono nella destinazione

I parametri --exclude-older e --exclude-newer consentono di escludere dalla copia, rispettivamente, le risorse di origine precedenti o più recenti. Per copiare solo e risorse di origine che non esistono nella destinazione, è possibile specificare entrambi i parametri nel comando AzCopy:

--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 comando

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

È possibile includere i parametri della riga di comando di AzCopy in un file di configurazione. AzCopy elabora i parametri nel file come se fossero stati specificati nella riga di comando, eseguendo una sostituzione diretta con i contenuti del file.

Si supponga che sia presente un file di configurazione denominato copyoperation, che contiene le righe seguenti. Ogni parametro di AzCopy può essere specificato su una singola riga

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

o su righe separate:

--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:

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

Specificare una firma di accesso condiviso

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1 \
    --destination https://myaccount.blob.core.windows.net/mycontainer2 \
    --source-sas <SAS1> \
    --dest-sas <SAS2> \
    --include abc.txt

È anche possibile specificare una firma di accesso condiviso per il contenitore URI:

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

AzCopy attualmente supporta solo la firma di accesso condiviso dell'account.

Cartella del file journal

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. Se il file journal non viene trovato in tali percorsi, AzCopy considera l'operazione come nuova e quindi crea un nuovo file journal.

Se il file journal esiste, AzCopy verifica se la riga di comando di input corrisponde alla riga di comando nel file journal. Se le righe di comando corrispondono, AzCopy avvia la ripresa dell'operazione incompleta. Se non corrispondono, viene richiesto se si vuole sovrascrivere il file journal per avviare una nuova operazione o annullare l'operazione corrente.

Se si vuole usare il percorso predefinito per il file journal:

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. Se il file journal esiste già, AzCopy riprenderà l'operazione in base al file journal.

Se si vuole specificare un percorso personalizzato per il file journal:

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à: Se esiste, AzCopy riprenderà l'operazione in base al file journal.

Se si vuole riprendere un'operazione di AzCopy, ripetere lo stesso comando. AzCopy in Linux richiederà la conferma:

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 dettagliati

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

Specificare il numero di operazioni simultanee da avviare

L'opzione --parallel-level specifica il numero di operazioni di copia simultanee. Per impostazione predefinita, AzCopy avvia un determinato numero di operazioni simultanee per aumentare la velocità effettiva di trasferimento dei dati. Il numero di operazioni simultanee è uguale a 8 volte il numero di processori disponibili. 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.

[!TIP]

Per visualizzare l'elenco completo dei parametri di AzCopy, vedere il menu 'azcopy - help'.

Problemi noti e procedure consigliate

Errore: impossibile trovare .NET Core nel sistema.

Se viene visualizzato un errore che indica che .NET Core non è installato nel sistema, è possibile che manchi il percorso per il file binario di .NET Core dotnet.

Per risolvere il problema, trovare il file binario di .NET Core nel sistema:

sudo find / -name dotnet

Viene restituito il percorso del file binario dotnet.

/opt/rh/rh-dotnetcore11/root/usr/bin/dotnet
/opt/rh/rh-dotnetcore11/root/usr/lib64/dotnetcore/dotnet
/opt/rh/rh-dotnetcore11/root/usr/lib64/dotnetcore/shared/Microsoft.NETCore.App/1.1.2/dotnet

Aggiungere questo percorso alla variabile PATH. Per sudo, modificare secure_path in modo da includere il percorso del file binario dotnet:

sudo visudo
### Append the path found in the preceding example to 'secure_path' variable

In questo esempio, la variabile secure_path è:

secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/opt/rh/rh-dotnetcore11/root/usr/bin/

Per l'utente corrente, modificare .bash_profile/.profile in modo da includere il percorso del file binario dotnet nella variabile PATH

vi ~/.bash_profile
### Append the path found in the preceding example to 'PATH' variable

Verificare che .NET Core sia ora presente in PATH:

which dotnet
sudo which dotnet

Errore durante l'installazione di AzCopy

Se si verificano problemi con l'installazione di AzCopy, si può provare a eseguire AzCopy usando lo script bash nella cartella azcopy estratta.

cd azcopy
./azcopy

Limitare le scritture simultanee durante la copia dei dati

Durante la copia di BLOB o file con AzCopy, tenere presente che altre applicazioni potrebbero modificare i dati mentre è in corso la copia. Se possibile, assicurarsi che i dati copiati non vengano modificati durante l'operazione di copia. 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. Un buon metodo per eseguire questa operazione è tramite leasing della risorsa da copiare. In alternativa, è prima possibile creare uno snapshot del file VHD e quindi copiare lo 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.

Eseguire un'istanza di AzCopy su un computer.

AzCopy è progettato per massimizzare l'utilizzo della risorsa del computer per accelerare il trasferimento dei dati, è consigliabile eseguire solo un'istanza di AzCopy in un computer e specificare l'opzione --parallel-level se sono necessarie più operazioni simultanee. Per ulteriori dettagli, digitare AzCopy --help parallel-level nella riga di comando.

Passaggi successivi

Per altre informazioni su Archiviazione di Azure e AzCopy, vedere le risorse seguenti:

Documentazione di Archiviazione di Azure

Post del blog di Archiviazione di Azure: