azcopy sync

Repliziert den Quellspeicherort an den Zielspeicherort. Dieser Artikel enthält eine detaillierte Referenz zum Befehl „azcopy sync“. Weitere Informationen zum Synchronisieren von Blobs zwischen Quell- und Zielspeicherorten finden Sie unter Synchronisieren mit Azure Blob Storage mit AzCopy v10. Für Azure Files finden Sie weitere Informationen unter Synchronisieren von Dateien.

Zusammenfassung

Die Zeitpunkte der letzten Änderung werden für den Vergleich verwendet. Die Datei wird übersprungen, wenn der Zeitpunkt der letzten Änderung im Ziel aktueller ist. Folgende Paare werden unterstützt:

  • Lokal <-> Azure-Blob / Azure File (SAS- oder OAuth-Authentifizierung kann verwendet werden)
  • Azure-Blob <-> Azure-Blob (Die Quelle muss eine SAS enthalten oder öffentlich zugänglich sein, für das Ziel kann die SAS- oder OAuth-Authentifizierung verwendet werden.)
  • Azure-Datei <-> Azure-Datei (Die Quelle muss eine SAS enthalten oder öffentlich zugänglich sein, für das Ziel sollte die SAS-Authentifizierung verwendet werden.)
  • Azure BLOB < – > Azure-Datei

Der Befehl „sync“ unterscheidet sich auf mehrere Arten vom Befehl „copy“:

  1. Das „recursive“-Flag ist standardmäßig „true“, und „sync“ kopiert alle Unterverzeichnisse. „sync“ kopiert nur die Dateien der obersten Ebene in einem Verzeichnis, wenn das „recursive“-Flag „false“ ist.
  2. Fügen Sie beim Synchronisieren zwischen virtuellen Verzeichnissen dem Pfad einen nachstehenden Schrägstrich hinzu (siehe Beispiele), wenn ein Blob über denselben Namen wie eines der virtuellen Verzeichnisse verfügt.
  3. Wenn das Flag „delete-destination“ auf „true“ oder „prompt“ festgelegt ist, werden Dateien und Blobs, die in der Quelle nicht vorhanden sind, von „sync“ am Ziel gelöscht.

Richtlinien

Mit dem Befehl sync werden Dateinamen und die Zeitstempel der letzten Änderung verglichen. Legen Sie das optionale Flag --delete-destination auf den Wert true oder prompt fest, um Dateien im Zielverzeichnis zu löschen, wenn diese im Quellverzeichnis nicht mehr vorhanden sind.

  • Wenn Sie das Flag --delete-destination auf true festlegen, löscht AzCopy Dateien, ohne zur Bestätigung aufzufordern. Wenn eine Bestätigungsaufforderung angezeigt werden soll, bevor AzCopy eine Datei löscht, legen Sie das --delete-destination-Flag auf prompt fest.

  • Wenn Sie das Flag --delete-destination auf prompt oder false festlegen möchten, sollten Sie den Befehl copy anstelle des Befehls sync verwenden und den Parameter --overwrite auf ifSourceNewer festlegen. Der Befehl copy verbraucht weniger Arbeitsspeicher und verursacht weniger Abrechnungskosten, weil die Quelle oder das Ziel bei einem Kopiervorgang vor dem Verschieben von Dateien nicht indiziert werden muss.

  • Der Computer, auf dem Sie den Synchronisierungsbefehl ausführen, sollte über eine genaue Systemuhr verfügen, weil die Zeiten der letzten Änderung maßgeblich sind, um über die Übertragung einer Datei zu entscheiden. Wenn die Zeit Ihres Systems erheblich abweicht, sollten Sie Dateien am Ziel nicht zu nahe an dem Zeitpunkt ändern, zu dem Sie einen Synchronisierungsbefehl ausführen möchten.

  • AzCopy verwendet Server-zu-Server-APIs, um Daten zwischen Speicherkonten zu synchronisieren. Das bedeutet, dass Daten direkt zwischen Speicherservern kopiert werden. AzCopy hat jedoch jede Übertragung eingerichtet und überwacht und für größere Speicherkonten (z. B. Konten, die Millionen von Blobs enthalten), AzCopy kann eine erhebliche Menge an Berechnungsressourcen benötigen, um diese Aufgaben auszuführen. Wenn Sie AzCopy auf dem virtuellen Computer (VM) ausführen, stellen Sie daher sicher, dass die VM genügend Kerne/Arbeitsspeicher hat, um die Last zu behandeln.

  • Für Blob-Speicher können Sie versehentliche Löschungen verhindern, indem Sie sicherstellen, dass das Feature zum soften Löschen aktiviert wird, bevor Sie das --delete-destination=prompt|true Flag verwenden.

Fortgeschrittene

Zu beachten: Wenn Sie keine Dateierweiterung angeben, erkennt AzCopy den Inhaltstyp der Dateien beim Hochladen vom lokalen Datenträger automatisch anhand der Dateierweiterung oder des Inhalts.

Die integrierte Nachschlagetabelle ist klein, aber unter Unix wird sie, falls verfügbar, um die mime.types-Datei(en) des lokalen Systems erweitert. Hierfür werden diese Namen verwendet:

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

Unter Windows werden MIME-Typen aus der Registrierung extrahiert.

Beachten Sie außerdem, dass die Synchronisierung ausschließlich von den letzten geänderten Zeiten abläuft. Im Fall von Azure File <-> Azure File wird das Kopfzeilenfeld „Zuletzt geändert“ anstelle von x-ms-file-change-time verwendet, was bedeutet, dass Metadatenänderungen an der Quelle auch eine vollständige Kopie auslösen können.

azcopy sync [flags]

Beispiele

Synchronisieren einer einzelnen Datei:

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

Wie oben, aber berechnen Sie außerdem einen MD5-Hash des Dateiinhalts, und speichern Sie diesen MD5-Hash als „Content-MD5“-Eigenschaft des Blobs.

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

Synchronisieren eines gesamten Verzeichnisses einschließlich der zugehörigen Unterverzeichnisse (beachten Sie, dass „recursive“ standardmäßig aktiviert ist):

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

Synchronisieren Sie nur die Dateien innerhalb eines Verzeichnisses, nicht aber Unterverzeichnisse oder die Dateien innerhalb von Unterverzeichnissen:

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

Synchronisieren Sie eine Teilmenge von Dateien in einem Verzeichnis (z.B. nur JPG- und PDF-Dateien oder wenn der Dateiname „exactName“ lautet):

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

Synchronisieren Sie ein gesamtes Verzeichnis, doch schließen Sie bestimmte Dateien aus dem Umfang aus (z. B. jede Datei, die mit „foo“ beginnt oder mit „bar“ endet):

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

Synchronisieren eines einzelnen Blobs:

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

Synchronisieren eines virtuellen Verzeichnisses:

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

Synchronisieren eines virtuellen Verzeichnisses mit demselben Namen wie ein Blob (Fügen Sie dem Pfad einen nachstehenden Schrägstrich hinzu, um die Namen zu unterscheiden.):

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

Synchronisieren eines Azure-Dateiverzeichnisses (dieselbe Syntax wie bei einem 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

Hinweis: Wenn „include“- und „exclude“-Flags zusammen verwendet werden, werden nur Dateien verwendet, die mit den „include“-Mustern übereinstimmen. Dateien, die mit den „exclude“-Mustern übereinstimmen, werden ignoriert.

Optionen

--block-size-mb (Gleitkommazahl): Blockgröße (in MiB) für das Hochladen in Azure Storage oder das Herunterladen aus Azure Storage. Der Standardwert wird anhand der Dateigröße automatisch berechnet. Dezimalzahlen sind zulässig (Beispiel: 0,25).

--check-md5 (Zeichenfolge) Gibt an, wie streng MD5-Hashes beim Herunterladen überprüft werden sollten. Diese Option ist nur beim Herunterladen verfügbar. Verfügbare Werte enthalten: „NoCheck“, „LogOnly“, „FailIfDifferent“, „FailIfDifferentOrMissing“. (Standardwert: „FailIfDifferent“) (Die Standardeinstellung ist „FailIfDifferent“.)

--cpk-by-name (Zeichenfolge) vom Client bereitgestellter Schlüssel nach Name; bietet Clients, die Anforderungen an Azure Blob Storage stellen, eine Option zum Bereitstellen eines Verschlüsselungsschlüssels pro Anforderung. Der bereitgestellte Schlüsselname wird aus Azure Key Vault abgerufen und zum Verschlüsseln der Daten verwendet.

--cpk-by-value vom Client bereitgestellter Schlüssel nach Name; bietet Clients, die Anforderungen an Azure Blob Storage stellen, eine Option zum Bereitstellen eines Verschlüsselungsschlüssels pro Anforderung. Der bereitgestellte Schlüssel und sein Hash werden aus Umgebungsvariablen abgerufen.

--delete-destination (Zeichenfolge): definiert, ob zusätzliche Dateien am Ziel gelöscht werden sollen, die in der Quelle nicht vorhanden sind. Könnte auf „true“, „false“ oder „prompt“ festgelegt werden. Wenn sie auf „prompt“ festgelegt wurde, wird dem Benutzer eine Frage gestellt, bevor Dateien und Blobs zum Löschen geplant werden. (Standardwert: „false“) (Der Standardwert lautet „false“.)

--dry-run: gibt den Pfad der Dateien aus, die vom Synchronisierungsbefehl kopiert oder entfernt werden. Mit diesem Flag werden nicht die tatsächlichen Dateien kopiert oder entfernt.

--exclude-attributes (Zeichenfolge) (Nur Windows) Schließt Dateien aus, deren Attribute mit der Attributliste übereinstimmen. Beispiel: A;S;R

--exclude-path (Zeichenfolge) Schließt diese Pfade beim Vergleich der Quelle mit dem Ziel aus. Diese Option unterstützt keine Platzhalterzeichen (*). Überprüft das Präfix des relativen Pfads (Beispiel: myFolder;myFolder/subDirName/file.pdf).

--exclude-pattern (Zeichenfolge): Schließt Dateien aus, in denen der Name der Musterliste entspricht. Beispiel: .jpg; .pdf;exactName

--exclude-regex (Zeichenfolge): schließt den relativen Pfad der Dateien aus, die regulären Ausdrücken entsprechen. Reguläre Ausdrücke werden durch Semikolon (;) getrennt.

--from-to (Zeichenfolge): Gibt optional die Quelle/Ziel-Kombination an. Beispiel: LocalBlob, BlobLocal, LocalFile, FileLocal, BlobFile, FileBlob usw.

-h, --help Hilfe zu „sync“

--include-attributes (Zeichenfolge) (Nur Windows) Schließt nur Dateien ein, deren Attribute mit der Attributliste übereinstimmen. Beispiel: A;S;R

--include-pattern (Zeichenfolge): Schließt nur Dateien ein, deren Name der Musterliste entspricht. Beispiel: .jpg; .pdf;exactName

--include-regex (Zeichenfolge) Schließt den relativen Pfad der Dateien ein, die regulären Ausdrücken entsprechen. Reguläre Ausdrücke werden durch Semikolon (;) getrennt.

--log-level (Zeichenfolge) Definiert, wie ausführlich die Protokolldatei sein soll. Verfügbare Stufen: INFO (alle Anforderungen und Antworten), WARNING (langsame Antworten), ERROR (nur fehlgeschlagene Anforderungen) und NONE (keine Ausgabeprotokolle). (Der Standardwert lautet „INFO“.) (Standardwert: „Info“)

--mirror-mode Deaktiviert den auf dem Zeitpunkt der letzten Änderung basierenden Vergleich und überschreibt die in Konflikt stehenden Dateien und Blobs am Ziel, wenn dieses Flag auf „true“ festgelegt ist. Die Standardeinstellung ist „false“.

--preserve-permissions Der Standardwert ist FALSE. Behält ACLs zwischen bewussten Ressourcen (Windows und Azure Files oder ADLS Gen 2 zu ADLS Gen 2) bei. Für Konten mit einem hierarchischen Namespace benötigen Sie eine Container-SAS oder ein OAuth-Token mit den Berechtigungen „Besitz ändern“ und „Berechtigungen ändern“. Für Downloads müssen Sie auch das Flag --backup verwenden, um Berechtigungen wiederherzustellen, bei denen der neue Besitzer nicht der Benutzer ist, der AzCopy ausführt. Dieses Flag gilt sowohl für Dateien als auch für Ordner, es sei denn, ein reiner Dateifilter ist angegeben (z. B. „include-pattern“).

--preserve-smb-info Für SMB-fähige Speicherorte wird das Flag standardmäßig auf „true“ festgelegt. Behält SMB-Eigenschaftsinformationen ( letzte Schreibzeit, Erstellungszeit, Attributbits) zwischen SMB-fähigen Ressourcen (Azure Files) bei. Dieses Flag gilt sowohl für Dateien als auch für Ordner, es sei denn, ein reiner Dateifilter ist angegeben (z. B. „include-pattern“). Die für Ordner übertragenen Informationen sind die gleichen wie die für Dateien, mit Ausnahme der letzten Schreibzeit, die für Ordner nicht gespeichert wird. (Standardwert: „true“)

--put-md5 Dient zum Erstellen eines MD5-Hashs jeder Datei und zum Speichern des Hashs als „Content-MD5“-Eigenschaft des Zielblobs bzw. der Zieldatei. (Standardmäßig wird der Hash NICHT erstellt.) Nur beim Hochladen verfügbar.

--recursive Standardmäßig; überprüfen Sie Unterverzeichnisse rekursiv, wenn Sie zwischen Verzeichnissen synchronisieren. (Die Standardeinstellung ist „true“). (Standardwert: „true“)

--s2s-preserve-access-tier Dient zum Beibehalten der Zugriffsebene beim Kopieren von Dienst zu Dienst. Informationen zur Sicherstellung, dass das Zielspeicherkonto das Festlegen der Zugriffsebene unterstützt, finden Sie unter Azure Blob Storage: Zugriffsebenen „Heiß“, „Kalt“ und „Archiv“. Verwenden Sie s2sPreserveAccessTier=false in den Fällen, in denen das Festlegen der Zugriffsebene nicht unterstützt wird, um das Kopieren der Zugriffsebene zu umgehen. (Die Standardeinstellung ist „true“). (Standardwert: „true“)

--s2s-preserve-blob-tags Behält Indextags während der Synchronisierung zwischen Diensten von einem Blobspeicher zu einem anderen bei.

Von übergeordneten Befehlen geerbte Optionen

--cap-mbps (Gleitkomma) Begrenzt die Übertragungsrate (in Megabit pro Sekunde). Der Schritt-für-Schritt-Durchsatz kann von der Obergrenze geringfügig abweichen. Wenn diese Option auf „Null“ festgelegt oder weggelassen wird, ist der Durchsatz nicht begrenzt.

--output-type (Zeichenfolge) – Format der Befehlsausgabe. Folgende Optionen sind verfügbar: „text“ und „json“. Der Standardwert lautet „text“. (Standardwert: „text“)

--trusted-microsoft-suffixes (Zeichenfolge): Gibt weitere Domänensuffixe an, an die Azure Active Directory-Anmeldetoken gesendet werden können. Der Standardwert ist '.core.windows.net;.core.chinacloudapi.cn;.core.cloudapi.de;.core.usgovcloudapi.net;*.storage.azure.net'. Alle hier aufgelisteten Werte werden zum Standardwert hinzugefügt. Aus Sicherheitsgründen sollten Sie hier nur Microsoft Azure-Domänen platzieren. Trennen Sie mehrere E-Mail-Adressen durch Semikolons voneinander.

Weitere Informationen