azcopy sync

Replica il percorso di origine nella posizione di destinazione. Questo articolo fornisce un riferimento dettagliato per il comando azcopy sync. Per altre informazioni sulla sincronizzazione dei BLOB tra percorsi di origine e di destinazione, vedere Sincronizzare con l'archiviazione BLOB di Azure usando AzCopy v10. Per File di Azure, vedere Sincronizzare i file.

Nota

AzCopy non supporta scenari in cui l'origine o la destinazione viene modificata attivamente durante il trasferimento.

Riepilogo

Le ore dell'ultima modifica vengono utilizzate per il confronto. Il file viene ignorato se l'ora dell'ultima modifica nella destinazione è più recente. In alternativa, è possibile usare il --compare-hash flag per trasferire solo i file che differiscono nell'hash MD5. Le coppie supportate sono:

  • Locale <-> BLOB di Azure/File di Azure (è possibile usare l'autenticazione sas o OAuth)
  • BLOB di <Azure -> BLOB di Azure (è possibile usare l'autenticazione OAuth o SAS)
  • File di <Azure -> File di Azure (l'origine deve includere una firma di accesso condiviso o è accessibile pubblicamente; L'autenticazione sas deve essere usata per la destinazione)
  • BLOB di <Azure -> File di Azure

Il comando di sincronizzazione è diverso dal comando copy in diversi modi:

  1. Per impostazione predefinita, il flag ricorsivo è true e la sincronizzazione copia tutte le sottodirectory. La sincronizzazione copia solo i file di primo livello all'interno di una directory se il flag ricorsivo è false.
  2. Quando si esegue la sincronizzazione tra directory virtuali, aggiungere una barra finale al percorso (fare riferimento ad esempi) se è presente un BLOB con lo stesso nome di una delle directory virtuali.
  3. Se il flag "delete-destination" è impostato su true o prompt, la sincronizzazione eliminerà i file e i BLOB nella destinazione che non sono presenti nell'origine.

Linee guida

Per impostazione predefinita, il comando di sincronizzazione confronta i nomi dei file e i timestamp dell'ultima modifica. È possibile eseguire l'override di tale comportamento per usare hash MD5 anziché i timestamp dell'ultima modifica usando il flag --compare-hash. Impostare il flag facoltativo --delete-destination su un valore di true o prompt per eliminare i file nella directory di destinazione se tali file non esistono più nella directory di origine.

  • Se si imposta il flag --delete-destination su true, AzCopy elimina i file senza fornire un prompt. Se si vuole che venga visualizzata una richiesta prima che AzCopy elimini un file, impostare il flag di --delete-destination su prompt.

  • Se si prevede di impostare il flag di --delete-destination su prompt o false, è consigliabile usare il comando copy anziché il comando sync e impostare il parametro --overwrite su ifSourceNewer. Il comando copy utilizza meno memoria e comporta costi di fatturazione inferiori perché un'operazione di copia non deve indicizzare l'origine o la destinazione prima dello spostamento dei file.

  • Se non si prevede di usare il flag --compare-hash, il computer in cui si esegue il comando di sincronizzazione deve avere un orologio di sistema accurato perché gli orari dell'ultima modifica sono fondamentali per determinare se un file deve essere trasferito. Se il sistema ha un'asimmetria di clock significativa, evitare di modificare i file nella destinazione in un lasso di tempo vicino a quando si prevede di eseguire un comando di sincronizzazione.

  • AzCopy usa le API da server a server per sincronizzare i dati tra gli account di archiviazione. Ciò significa che i dati vengono copiati direttamente tra i server di archiviazione. Tuttavia, AzCopy configura e monitora ogni trasferimento e, per account di archiviazione di dimensioni maggiori (ad esempio account che contengono milioni di BLOB), potrebbe richiedere una notevole quantità di risorse di calcolo per eseguire queste attività. Pertanto, se si esegue AzCopy dalla macchina virtuale, assicurarsi che la macchina virtuale disponga di core/memoria sufficienti per gestire il carico.

  • Per l'archiviazione BLOB, è possibile impedire eliminazioni accidentali assicurandosi di abilitare la funzionalità di eliminazione temporanea prima di usare il --delete-destination=prompt|true flag .

Avanzato

Si noti che se non si specifica un'estensione di file, AzCopy rileva automaticamente il tipo di contenuto dei file durante il caricamento dal disco locale, in base all'estensione o al contenuto del file.

La tabella di ricerca predefinita è piccola ma in Unix è aumentata dai file mime.types del sistema locale, se disponibili in uno o più di questi nomi:

  • /etc/mime.types
  • /etc/apache2/mime.types
  • /etc/apache/mime.types

In Windows i tipi MIME vengono estratti dal Registro di sistema.

Per impostazione predefinita, la sincronizzazione funziona fuori dall'ora dell'ultima modifica, a meno che non si esegua l'override del comportamento predefinito usando il --compare-hash flag . Pertanto, nel caso di File <di Azure -> File di Azure, il campo di intestazione Last-Modified viene usato invece di x-ms-file-change-time, il che significa che le modifiche ai metadati nell'origine possono anche attivare una copia completa.

azcopy sync [flags]

Esempi

Sincronizzare un singolo file:

azcopy sync "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]"

Come sopra, ma anche calcolare un hash MD5 del contenuto del file e quindi salvare l'hash MD5 come proprietà Content-MD5 del BLOB.

azcopy sync "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]" --put-md5

Sincronizzare un'intera directory, incluse le relative sottodirectory (si noti che per impostazione predefinita è attiva la ricorsiva):

azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" oppure azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --put-md5

Sincronizzare solo i file all'interno di una directory, ma non le sottodirectory o i file all'interno delle sottodirectory:

azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --recursive=false

Sincronizzare un subset di file in una directory (ad esempio: solo file jpg e pdf o se il nome del file è "exactName"):

azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --include-pattern="*.jpg;*.pdf;exactName"

Sincronizzare un'intera directory ma escludere determinati file dall'ambito (ad esempio: ogni file che inizia con foo o termina con la barra):

azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --exclude-pattern="foo*;*bar"

Sincronizzare un singolo BLOB:

azcopy sync "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS]" "https://[account].blob.core.windows.net/[container]/[path/to/blob]"

Sincronizzare una directory virtuale:

azcopy sync "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]?[SAS]" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --recursive=true

Sincronizzare una directory virtuale con lo stesso nome di un BLOB (aggiungere una barra finale al percorso per evitare ambiguità):

azcopy sync "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]/?[SAS]" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]/" --recursive=true

Sincronizzare una directory di File di Azure (stessa sintassi del BLOB):

azcopy sync "https://[account].file.core.windows.net/[share]/[path/to/dir]?[SAS]" "https://[account].file.core.windows.net/[share]/[path/to/dir]" --recursive=true

Nota: se i flag di inclusione ed esclusione vengono usati insieme, vengono usati solo i file corrispondenti ai modelli di inclusione, ma quelli corrispondenti ai modelli di esclusione vengono ignorati.

Opzioni

--block-size-mb(float) Usare questa dimensione del blocco (specificata in MiB) durante il caricamento in Archiviazione di Azure o il download da Archiviazione di Azure. Il valore predefinito viene calcolato automaticamente in base alle dimensioni del file. Le frazioni decimali sono consentite (ad esempio: 0,25). Durante il caricamento o il download, la dimensione massima consentita del blocco è 0,75 * AZCOPY_BUFFER_GB. Per altre informazioni, vedere Ottimizzare l'uso della memoria.

--check-md5 (string) Specifica la modalità di convalida degli hash MD5 rigorosamente durante il download. Questa opzione è disponibile solo durante il download. I valori disponibili includono: NoCheck, LogOnly, FailIfDifferent, FailIfDifferentOrMissing. (impostazione predefinita "FailIfDifferent"). (impostazione predefinita "FailIfDifferent")

--compare-hash (string) Informare la sincronizzazione per fare affidamento sugli hash come alternativa all'ora dell'ultima modifica (LMT). Gli hash mancanti in un'origine remota genereranno un errore. (Nessuno, MD5) Impostazione predefinita: Nessuno (impostazione predefinita "Nessuno")

--cpk-by-name (string) La chiave fornita dal client per nome consente ai client che effettuano richieste nell'archivio BLOB di Azure di fornire una chiave di crittografia per ogni richiesta. Il nome della chiave specificato verrà recuperato da Azure Key Vault e verrà usato per crittografare i dati

--cpk-by-value La chiave fornita dal client per nome consente ai client che effettuano richieste nell'archivio BLOB di Azure di fornire una chiave di crittografia per ogni richiesta. La chiave fornita e il relativo hash verranno recuperati dalle variabili di ambiente

--delete-destination (string) Definisce se eliminare file aggiuntivi dalla destinazione che non sono presenti nell'origine. Può essere impostato su true, false o prompt. Se impostato su prompt, l'utente verrà posta una domanda prima di pianificare i file e i BLOB per l'eliminazione. (valore predefinito "false"). (impostazione predefinita "false")

--dry-run Stampa il percorso dei file che verrebbero copiati o rimossi dal comando di sincronizzazione. Questo flag non copia o rimuove i file effettivi.

--exclude-attributes (string) (solo Windows) Escludere i file i cui attributi corrispondono all'elenco di attributi. Ad esempio: A; S; R

--exclude-path (string) Escludere questi percorsi durante il confronto tra l'origine e la destinazione. Questa opzione non supporta caratteri jolly (*). Controlla il prefisso del percorso relativo(ad esempio: myFolder; myFolder/subDirName/file.pdf).

--exclude-pattern (string) Escludere i file in cui il nome corrisponde all'elenco dei criteri. Ad esempio: .jpg;. Pdf; exactName

--exclude-regex (string) Escludere il percorso relativo dei file che corrispondono alle espressioni regolari. Separare le espressioni regolari con ';'.

--force-if-read-onlyQuando si sovrascrive un file esistente in Windows o File di Azure, forzare il funzionamento della sovrascrittura anche se nel file esistente è impostato l'attributo di sola lettura.

--from-to (string) Facoltativamente, specifica la combinazione di destinazione di origine. Ad esempio: LocalBlob, BlobLocal, LocalFile, FileLocal, BlobFile, FileBlob e così via.

-h, --help guida per la sincronizzazione

--include-attributes (string) (solo Windows) Includere solo i file i cui attributi corrispondono all'elenco di attributi. Ad esempio: A; S; R

--include-pattern (string) Includere solo i file in cui il nome corrisponde all'elenco dei criteri. Ad esempio: .jpg;. Pdf; exactName

--include-regex (string) Includere il percorso relativo dei file che corrispondono alle espressioni regolari. Separare le espressioni regolari con ';'.

--hash-meta-dir Quando si usa --local-hash-storage-mode=HiddenFiles, è possibile specificare una directory alternativa per archiviare i file di metadati hash in ,anziché accanto ai file correlati nell'origine.

--local-hash-storage-mode Specificare un modo alternativo per memorizzare nella cache gli hash dei file. Le opzioni valide sono: HiddenFiles (OS Agnostic), (richiede user_xattr in tutti i file system attraversati l'origine), AlternateDataStreams (Solo Windows. richiede flussi denominati nel XAttr (Linux/MacOS only volume di destinazione).

--mirror-mode Disabilitare il confronto basato sull'ora dell'ultima modifica e sovrascrive i file e i BLOB in conflitto nella destinazione se questo flag è impostato su true. Il valore predefinito è false.

--put-blob-size-mbUsare questa dimensione (specificata in MiB) come soglia per determinare se caricare un BLOB come singola richiesta PUT durante il caricamento in Archiviazione di Azure. Il valore predefinito viene calcolato automaticamente in base alle dimensioni del file. Le frazioni decimali sono consentite (ad esempio: 0,25).

--preserve-permissions False per impostazione predefinita. Mantiene gli ACL tra le risorse con riconoscimento (Windows e File di Azure o ADLS Gen 2 ad ADLS Gen 2). Per gli account dello spazio dei nomi gerarchico, è necessario un token di firma di accesso condiviso del contenitore o OAuth con autorizzazioni Modifica proprietà e Modifica autorizzazioni. Per i download, è necessario anche il --backup flag per ripristinare le autorizzazioni in cui il nuovo proprietario non sarà l'utente che esegue AzCopy. Questo flag si applica sia ai file che alle cartelle, a meno che non venga specificato un filtro solo file , ad esempio un modello di inclusione.

--preserve-posix-properties- False per impostazione predefinita. Preserves informazioni sulle proprietà ottenute da stat o statx nei metadati dell'oggetto.

--preserve-smb-info Per le posizioni con riconoscimento SMB, il flag verrà impostato su true per impostazione predefinita. Mantiene le informazioni sulle proprietà SMB (ora dell'ultima scrittura, ora di creazione, bit di attributo) tra le risorse che supportano SMB (File di Azure). Questo flag si applica sia ai file che alle cartelle, a meno che non venga specificato un filtro solo file , ad esempio un modello di inclusione. Le informazioni trasferite per le cartelle sono uguali a quelle per i file, ad eccezione dell'ora dell'ultima scrittura che non viene mantenuta per le cartelle. (valore predefinito true)

--put-md5 Creare un hash MD5 di ogni file e salvare l'hash come proprietà Content-MD5 del BLOB o del file di destinazione. Per impostazione predefinita, l'hash NON viene creato. Disponibile solo durante il caricamento.

--recursive True per impostazione predefinita, esaminare le sottodirectory in modo ricorsivo durante la sincronizzazione tra directory. (valore predefinito true). (valore predefinito true)

--s2s-preserve-access-tier Mantenere il livello di accesso durante la copia del servizio. Fare riferimento ad Archiviazione BLOB di Azure: livelli di accesso ad accesso frequente, sporadico e archivio per assicurarsi che l'account di archiviazione di destinazione supporti l'impostazione del livello di accesso. Nei casi in cui l'impostazione del livello di accesso non è supportata, usare s2sPreserveAccessTier=false per ignorare la copia del livello di accesso. (valore predefinito true). (valore predefinito true)

--s2s-preserve-blob-tags Mantenere i tag di indice durante la sincronizzazione da servizio a servizio da un archivio BLOB a un altro

--trailing-dot Abilitato per impostazione predefinita per gestire le operazioni correlate alla condivisione file in modo sicuro. Opzioni disponibili: Enable, Disable. Scegliere Disable di tornare al trattamento legacy (potenzialmente non sicuro) dei file punto finale in cui il servizio file taglia tutti i punti finali nei percorsi. Ciò può comportare un potenziale danneggiamento dei dati se il trasferimento contiene due percorsi che differiscono solo per un punto finale (ad esempio mypath e mypath.). Se questo flag è impostato su Disable e AzCopy rileva un file punto finale, avvisa i clienti nel log di analisi, ma non tenterà di interrompere l'operazione. Se la destinazione non supporta i file punto finale (Windows o Archiviazione BLOB), AzCopy avrà esito negativo se il file punto finale è la radice del trasferimento e ignora eventuali percorsi di punti finali rilevati durante l'enumerazione.

Opzioni ereditate dai comandi padre

--log-level (string) Definire il livello di dettaglio del log per il file di log, i livelli disponibili: INFO(tutte le richieste e risposte), WARNING(risposte lente), ERROR(solo richieste non riuscite) e NONE(nessun log di output). (INFORMAZIONI predefinite). (impostazione predefinita "INFO")

--cap-mbps (float) Riduce la velocità di trasferimento, in megabit al secondo. La velocità effettiva momentanea può variare leggermente rispetto al limite. Se questa opzione è impostata su zero o viene omessa, la velocità effettiva non viene limitata.

--output-type (string) Formato dell'output del comando. Le scelte includono: testo, json. Il valore predefinito è 'text'. (valore predefinito "text")

--trusted-microsoft-suffixes (string) Specifica altri suffissi di dominio in cui possono essere inviati i token di accesso di Microsoft Entra. Il valore predefinito è '.core.windows.net;. core.chinacloudapi.cn;. core.cloudapi.de;. core.usgovcloudapi.net;*.storage.azure.net'. Tutti gli elementi elencati di seguito vengono aggiunti all'impostazione predefinita. Per motivi di sicurezza, è consigliabile inserire qui solo i domini di Microsoft Azure. Separare più voci con punti e virgola.

Vedi anche