azcopy sync
Replica o local de origem para o local de destino. Este artigo fornece uma referência detalhada para o comando azcopy sync. Para saber mais sobre como sincronizar blobs entre locais de origem e destino, consulte Sincronizar com o armazenamento de Blobs do Azure usando o AzCopy v10. Para Arquivos do Azure, consulte Sincronizar arquivos.
Nota
O AzCopy não suporta cenários em que a origem ou o destino estão sendo ativamente alterados durante a transferência.
Sinopse
Os últimos tempos modificados são usados para comparação. O arquivo será ignorado se a última modificação no destino for mais recente. Como alternativa, você pode usar o --compare-hash
sinalizador para transferir apenas arquivos que diferem em seu hash MD5. Os pares suportados são:
- Local <-> Blob do Azure / Arquivo do Azure (autenticação SAS ou OAuth pode ser usada)
- Blob <do Azure -> Blob do Azure (a autenticação SAS ou OAuth pode ser usada)
- Arquivo <do Azure -> Arquivo do Azure (A origem deve incluir uma SAS ou é acessível publicamente; A autenticação SAS deve ser usada para o destino)
- Blob <do Azure -> Arquivo do Azure
O comando sync difere do comando copy de várias maneiras:
- Por padrão, o sinalizador recursivo é true e a sincronização copia todos os subdiretórios. A sincronização copia apenas os arquivos de nível superior dentro de um diretório se o sinalizador recursivo for false.
- Ao sincronizar entre diretórios virtuais, adicione uma barra à direita ao caminho (consulte exemplos) se houver um blob com o mesmo nome de um dos diretórios virtuais.
- Se o sinalizador 'excluir-destino' estiver definido como true ou prompt, a sincronização excluirá arquivos e blobs no destino que não estão presentes na origem.
Diretrizes
Por padrão, o comando sync compara nomes de arquivos e carimbos de data/hora da última modificação. Você pode substituir esse comportamento para usar hashes MD5 em vez de carimbos de data/hora modificados pela última vez usando o --compare-hash
sinalizador. Defina o --delete-destination
sinalizador opcional para um valor de ou prompt
para excluir arquivos no diretório de destino se esses arquivos não existirem mais no diretório de true
origem.
Se você definir o
--delete-destination
sinalizador comotrue
, AzCopy excluirá arquivos sem fornecer um prompt. Se desejar que um prompt apareça antes que o AzCopy exclua um arquivo, defina o--delete-destination
sinalizador comoprompt
.Se você planeja definir o
--delete-destination
sinalizador comoprompt
oufalse
, considere usar o comando copy em vez do comando sync e defina o--overwrite
parâmetro comoifSourceNewer
. O comando copy consome menos memória e incorre em menos custos de faturamento porque uma operação de cópia não precisa indexar a origem ou o destino antes de mover arquivos.Se você não planeja usar o
--compare-hash
sinalizador, a máquina na qual você executa o comando sync deve ter um relógio de sistema preciso, pois os últimos horários modificados são críticos para determinar se um arquivo deve ser transferido. Se o seu sistema tiver uma distorção de relógio significativa, evite modificar arquivos no destino muito perto da hora que você planeja executar um comando de sincronização.O AzCopy usa APIs de servidor para servidor para sincronizar dados entre contas de armazenamento. Isso significa que os dados são copiados diretamente entre os servidores de armazenamento. No entanto, o AzCopy configura e monitora cada transferência e, para contas de armazenamento maiores (por exemplo, contas que contêm milhões de blobs), o AzCopy pode exigir uma quantidade substancial de recursos de computação para realizar essas tarefas. Portanto, se você estiver executando o AzCopy da máquina virtual (VM), certifique-se de que a VM tenha núcleos/memória suficientes para lidar com a carga.
- Para o Armazenamento de Blobs, você pode evitar exclusões acidentais ativando o recurso de exclusão suave antes de usar o
--delete-destination=prompt|true
sinalizador.
Avançado
Observe que, se você não especificar uma extensão de arquivo, o AzCopy detetará automaticamente o tipo de conteúdo dos arquivos ao carregar do disco local, com base na extensão do arquivo ou no conteúdo.
A tabela de pesquisa integrada é pequena, mas no Unix é aumentada pelo(s) arquivo(s) mime.types do sistema local, se disponível sob um ou mais destes nomes:
- /etc/mime.types
- /etc/apache2/mime.types
- /etc/apache/mime.types
No Windows, os tipos MIME são extraídos do registo.
Por padrão, a sincronização funciona fora das últimas vezes modificadas, a menos que você substitua esse comportamento padrão usando o --compare-hash
sinalizador. Portanto, no caso do Arquivo <do Azure -> Arquivo do Azure, o campo de cabeçalho Última Modificação é usado em vez de x-ms-file-change-time, o que significa que as alterações de metadados na origem também podem disparar uma cópia completa.
azcopy sync [flags]
Artigos conceptuais relacionados
- Introdução ao AzCopy
- Transfira dados com o armazenamento AzCopy e Blob
- Transferir dados com o AzCopy e armazenamento de ficheiros
Exemplos
Sincronize um único arquivo:
azcopy sync "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]"
O mesmo que acima, mas calcule também um hash MD5 do conteúdo do ficheiro e guarde-o como propriedade Content-MD5 do blob.
azcopy sync "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]" --put-md5
Sincronize um diretório inteiro, incluindo seus subdiretórios (observe que o recursivo está por padrão ativado):
azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]"
ou azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --put-md5
Sincronize apenas os arquivos dentro de um diretório, mas não subdiretórios ou os arquivos dentro de subdiretórios:
azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --recursive=false
Sincronize um subconjunto de arquivos em um diretório (por exemplo: somente arquivos jpg e pdf, ou se o nome do arquivo for "exactName"):
azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --include-pattern="*.jpg;*.pdf;exactName"
Sincronize um diretório inteiro, mas exclua determinados arquivos do escopo (por exemplo: todos os arquivos que começam com foo ou terminam com bar):
azcopy sync "/path/to/dir" "https://[account].blob.core.windows.net/[container]/[path/to/virtual/dir]" --exclude-pattern="foo*;*bar"
Sincronize um único blob:
azcopy sync "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS]" "https://[account].blob.core.windows.net/[container]/[path/to/blob]"
Sincronize um diretório virtual:
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
Sincronize um diretório virtual que tenha o mesmo nome de um blob (adicione uma barra à direita ao caminho para desambiguar):
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
Sincronizar um diretório de Arquivo do Azure (mesma sintaxe de 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 os sinalizadores de inclusão e exclusão forem usados juntos, somente os arquivos correspondentes aos padrões de inclusão serão usados, mas aqueles que correspondem aos padrões de exclusão serão ignorados.
Opções
--block-size-mb
(flutuar) Use esse tamanho de bloco (especificado em MiB) ao carregar no Armazenamento do Azure ou ao fazer o download do Armazenamento do Azure. O padrão é calculado automaticamente com base no tamanho do arquivo. Frações decimais são permitidas (Por exemplo: 0,25). Ao carregar ou baixar, o tamanho máximo permitido do bloco é 0,75 * AZCOPY_BUFFER_GB. Para saber mais, consulte Otimizar o uso da memória.
--check-md5
(string) Especifica como estritamente os hashes MD5 devem ser validados durante o download. Esta opção só está disponível durante o download. Os valores disponíveis incluem: NoCheck, LogOnly, FailIfDifferent, FailIfDifferentOrMissing. (padrão 'FailIfDifferent'). (padrão "FailIfDifferent")
--compare-hash
(string) Informe a sincronização para confiar em hashes como uma alternativa ao Tempo da Última Modificação (LMT). A falta de hashes em uma fonte remota gerará um erro. (Nenhum, MD5) Padrão: Nenhum (padrão "Nenhum")
--cpk-by-name
(string) O cliente forneceu chave por nome permite que os clientes que fazem solicitações no armazenamento de Blob do Azure sejam uma opção para fornecer uma chave de criptografia por solicitação. O nome da chave fornecida será buscado no Cofre de Chaves do Azure e será usado para criptografar os dados
--cpk-by-value
O cliente forneceu chave por nome permite que os clientes que fazem solicitações no armazenamento de Blob do Azure sejam uma opção para fornecer uma chave de criptografia por solicitação. A chave fornecida e seu hash serão buscados de variáveis de ambiente
--delete-destination
(string) Define se os arquivos extras do destino devem ser excluídos que não estão presentes na origem. Pode ser definido como true, false ou prompt. Se definido para solicitar, será feita uma pergunta ao usuário antes de agendar arquivos e blobs para exclusão. (padrão 'false'). (padrão "false")
--dry-run
Imprime o caminho dos arquivos que seriam copiados ou removidos pelo comando sync. Este sinalizador não copia nem remove os ficheiros reais.
--exclude-attributes
(string) (Apenas Windows) Exclua arquivos cujos atributos correspondam à lista de atributos. Por exemplo: A; S; R
--exclude-path
(string) Exclua esses caminhos ao comparar a origem com o destino. Esta opção não suporta caracteres curinga (*). Verifica o prefixo do caminho relativo(Por exemplo: myFolder; myFolder/subDirName/file.pdf).
--exclude-pattern
(string) Exclua arquivos em que o nome corresponde à lista de padrões. Por exemplo: .jpg;. pdf; exactName
--exclude-regex
(string) Exclua o caminho relativo dos arquivos que correspondem às expressões regulares. Separe expressões regulares com ';'.
--force-if-read-only
Ao substituir um arquivo existente em Arquivos do Windows ou do Azure, force a substituição a funcionar mesmo que o arquivo existente tenha seu atributo somente leitura definido.
--from-to
(string) Opcionalmente, especifica a combinação de destino de origem. Por exemplo: LocalBlob, BlobLocal, LocalFile, FileLocal, BlobFile, FileBlob, etc.
-h
, --help
ajuda para sincronização
--include-attributes
(string) (Apenas Windows) Inclua apenas arquivos cujos atributos correspondam à lista de atributos. Por exemplo: A; S; R
--include-pattern
(string) Inclua apenas arquivos em que o nome corresponda à lista de padrões. Por exemplo: .jpg;. pdf; exactName
--include-regex
(string) Inclua o caminho relativo dos arquivos que correspondem às expressões regulares. Separe expressões regulares com ';'.
--hash-meta-dir
Ao usar --local-hash-storage-mode=HiddenFiles
o , você pode especificar um diretório alternativo para armazenar arquivos de metadados de hash (em vez de ao lado dos arquivos relacionados na fonte).
--local-hash-storage-mode
Especifique uma maneira alternativa de armazenar hashes de arquivo em cache. As opções válidas são: HiddenFiles (OS Agnostic)
, (requer user_xattr
em todos os sistemas de arquivos percorridos na origem), AlternateDataStreams
(somente Windows. requer fluxos nomeados no XAttr (Linux/MacOS only
volume de destino).
--mirror-mode
Desative a comparação baseada na última modificação e substitui os arquivos e blobs conflitantes no destino se esse sinalizador estiver definido como true. O padrão é false
--put-blob-size-mb
Use esse tamanho (especificado em MiB) como um limite para determinar se um blob deve ser carregado como uma única solicitação PUT ao carregar no Armazenamento do Azure. O valor padrão é calculado automaticamente com base no tamanho do arquivo. Frações decimais são permitidas (Por exemplo: 0,25).
--preserve-permissions
Falso por padrão. Preserva ACLs entre recursos sensíveis (Arquivos do Windows e do Azure ou ADLS Gen 2 a ADLS Gen 2). Para contas de namespace hierárquico, você precisará de um token SAS ou OAuth de contêiner com as permissões Modificar propriedade e Modificar permissões. Para downloads, você também precisará do --backup
sinalizador para restaurar permissões onde o novo proprietário não será o usuário executando o AzCopy. Esse sinalizador se aplica a arquivos e pastas, a menos que um filtro somente arquivo seja especificado (por exemplo, include-pattern).
--preserve-posix-properties-
Falso por padrão. Preserves
Informações de propriedade recolhidas de stat ou statx em metadados de objeto.
--preserve-smb-info
Para locais com reconhecimento de SMB, o sinalizador será definido como true por padrão. Preserva as informações da propriedade SMB (última hora de gravação, hora de criação, bits de atributo) entre recursos com reconhecimento de SMB (Arquivos do Azure). Esse sinalizador se aplica a arquivos e pastas, a menos que um filtro somente arquivo seja especificado (por exemplo, include-pattern). As informações transferidas para pastas são as mesmas que para arquivos, exceto para o Tempo da Última Gravação que não é preservado para pastas. (padrão true)
--put-md5
Crie um hash MD5 de cada arquivo e salve o hash como a propriedade Content-MD5 do blob ou arquivo de destino. (Por predefinição, o hash NÃO é criado). Apenas está disponível ao carregar.
--recursive
True por padrão, examine os subdiretórios recursivamente ao sincronizar entre diretórios. (padrão true). (padrão true)
--s2s-preserve-access-tier
Preservar a camada de acesso durante o serviço para cópia de serviço. Consulte Armazenamento de Blob do Azure: camadas de acesso quente, legal e de arquivamento para garantir que a conta de armazenamento de destino ofereça suporte à configuração da camada de acesso. Nos casos em que a configuração da camada de acesso não é suportada, use s2sPreserveAccessTier=false
para ignorar a camada de acesso de cópia. (padrão true). (padrão true)
--s2s-preserve-blob-tags
Preservar tags de índice durante a sincronização de serviço para serviço de um armazenamento de blob para outro
--trailing-dot
Habilitado por padrão para tratar operações relacionadas ao compartilhamento de arquivos de maneira segura. Opções disponíveis: Enable
, Disable
. Opte por Disable
voltar ao tratamento herdado (potencialmente inseguro) de arquivos de pontos à direita, onde o serviço de arquivos cortará todos os pontos à direita nos caminhos. Isso pode resultar em potencial corrupção de dados se a transferência contiver dois caminhos que diferem apenas por um ponto à direita (Por exemplo mypath
, e mypath.
). Se esse sinalizador estiver definido como Disable
e o AzCopy encontrar um arquivo de pontos à direita, ele avisará os clientes no log de varredura, mas não tentará abortar a operação. Se o destino não suportar arquivos de pontos à direita (Windows ou Armazenamento de Blob), o AzCopy falhará se o arquivo de pontos à direita for a raiz da transferência e ignorará quaisquer caminhos de pontos à direita encontrados durante a enumeração.
Opções herdadas dos comandos pai
--log-level
(string) Defina a verbosidade do log para o arquivo de log, níveis disponíveis: INFO(todas as solicitações e respostas), WARNING(respostas lentas), ERROR(somente solicitações com falha) e NONE(sem logs de saída). (INFO padrão). (padrão "INFO")
--cap-mbps
(flutuar) Limita a taxa de transferência, em megabits por segundo. A taxa de transferência momento a momento pode variar ligeiramente do limite. Se essa opção estiver definida como zero ou for omitida, a taxa de transferência não será limitada.
--output-type
(string) Formato da saída do comando. As opções incluem: texto, json. O valor padrão é 'text'. (padrão "texto")
--trusted-microsoft-suffixes
(string) Especifica outros sufixos de domínio para onde os tokens de login do Microsoft Entra podem ser enviados. O padrão é '.core.windows.net;. core.chinacloudapi.cn;. core.cloudapi.de;. core.usgovcloudapi.net;*.storage.azure.net'. Qualquer listado aqui é adicionado ao padrão. Por segurança, você só deve colocar domínios do Microsoft Azure aqui. Separe várias entradas com ponto-e-vírgula.