Share via


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.

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:

  1. 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.
  2. 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.
  3. 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 como true, 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 como prompt.

  • Se você planeja definir o --delete-destination sinalizador como prompt ou false, considere usar o comando copy em vez do comando sync e defina o --overwrite parâmetro como ifSourceNewer. 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]

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")

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

--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")

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

Opções herdadas dos comandos pai

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

Consulte também