azcopy sync

Replikuje lokalizację źródłową do lokalizacji docelowej. Ten artykuł zawiera szczegółowe informacje dotyczące polecenia azcopy sync. Aby dowiedzieć się więcej na temat synchronizowania obiektów blob między lokalizacjami źródłowymi i docelowymi, zobacz Synchronizowanie z usługą Azure Blob Storage przy użyciu narzędzia AzCopy w wersji 10. W przypadku usługi Azure Files zobacz Synchronizowanie plików.

Streszczenie

Czasy ostatniej modyfikacji są używane do porównania. Plik jest pomijany, jeśli ostatni czas modyfikacji w miejscu docelowym jest nowszy. Alternatywnie możesz użyć flagi --compare-hash , aby przenieść tylko pliki, które różnią się skrótem MD5. Obsługiwane pary to:

  • Lokalne <—> Azure Blob/Azure File (można użyć uwierzytelniania SAS lub OAuth)
  • Azure Blob —> obiekt blob <platformy Azure (można użyć uwierzytelniania SAS lub OAuth)
  • Azure File —> Azure File <(Źródło musi zawierać sygnaturę dostępu współdzielonego lub jest publicznie dostępne; Uwierzytelnianie sygnatury dostępu współdzielonego powinno być używane dla miejsca docelowego)
  • Azure Blob <—> Azure File

Polecenie synchronizacji różni się od polecenia copy na kilka sposobów:

  1. Domyślnie flaga rekursywna ma wartość true i synchronizuje wszystkie podkatalogi. Synchronizacja kopiuje tylko pliki najwyższego poziomu w katalogu, jeśli flaga cykliczna ma wartość false.
  2. Podczas synchronizacji między katalogami wirtualnymi dodaj końcowy ukośnik do ścieżki (zapoznaj się z przykładami), jeśli istnieje obiekt blob o takiej samej nazwie jak jeden z katalogów wirtualnych.
  3. Jeśli flaga "delete-destination" jest ustawiona na wartość true lub monit, synchronizacja spowoduje usunięcie plików i obiektów blob w miejscu docelowym, które nie znajdują się w źródle.

Wytyczne

Domyślnie polecenie synchronizacji porównuje nazwy plików i ostatnio zmodyfikowane znaczniki czasu. To zachowanie można zastąpić, aby użyć skrótów MD5 zamiast ostatniej modyfikacji sygnatur czasowych przy użyciu flagi --compare-hash . --delete-destination Ustaw opcjonalną flagę na wartość true lub prompt usuń pliki w katalogu docelowym, jeśli te pliki nie istnieją już w katalogu źródłowym.

  • Jeśli flaga zostanie ustawiona na --delete-destinationtrue, narzędzie AzCopy usuwa pliki bez wyświetlania monitu. Jeśli chcesz wyświetlić monit przed usunięciem pliku za pomocą narzędzia AzCopy, ustaw flagę --delete-destination na prompt.

  • Jeśli planujesz ustawić flagę --delete-destination na prompt lub false, rozważ użycie polecenia copy zamiast polecenia synchronizacji i ustaw --overwrite parametr na ifSourceNewer. Polecenie kopiowania zużywa mniej pamięci i wiąże się z mniejszymi kosztami rozliczeniowymi, ponieważ operacja kopiowania nie musi indeksować źródła ani miejsca docelowego przed przeniesieniem plików.

  • Jeśli nie planujesz używać flagi --compare-hash , maszyna, na której uruchomiono polecenie synchronizacji, powinna mieć dokładny zegar systemowy, ponieważ czasy ostatniej modyfikacji mają krytyczne znaczenie podczas określania, czy plik powinien zostać przeniesiony. Jeśli system ma znaczne niesymetryczność zegara, należy unikać modyfikowania plików w miejscu docelowym zbyt blisko czasu, w którym planujesz uruchomić polecenie synchronizacji.

  • Narzędzie AzCopy używa interfejsów API serwer-serwer do synchronizowania danych między kontami magazynu. Oznacza to, że dane są kopiowane bezpośrednio między serwerami magazynu. Jednak narzędzie AzCopy konfiguruje i monitoruje każdy transfer oraz w przypadku większych kont magazynu (na przykład kont zawierających miliony obiektów blob), narzędzie AzCopy może wymagać znacznej ilości zasobów obliczeniowych do wykonania tych zadań. W związku z tym, jeśli używasz narzędzia AzCopy z maszyny wirtualnej, upewnij się, że maszyna wirtualna ma wystarczającą ilość rdzeni/pamięci do obsługi obciążenia.

  • W przypadku usługi Blob Storage można zapobiec przypadkowemu usunięciu, upewniając się, że funkcja usuwania nietrwałego została włączona przed użyciem flagi--delete-destination=prompt|true.

Zaawansowani

Pamiętaj, że jeśli nie określisz rozszerzenia pliku, narzędzie AzCopy automatycznie wykryje typ zawartości plików podczas przekazywania z dysku lokalnego na podstawie rozszerzenia pliku lub zawartości.

Wbudowana tabela odnośników jest mała, ale w systemie Unix jest rozszerzana przez pliki mime.types systemu lokalnego, jeśli są dostępne pod co najmniej jedną z następujących nazw:

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

W systemie Windows typy MIME są wyodrębniane z rejestru.

Domyślnie synchronizacja działa poza czasy ostatniej modyfikacji, chyba że zastąpisz to domyślne zachowanie za pomocą flagi --compare-hash . W przypadku usługi Azure File —> Azure File <pole nagłówka Last-Modified jest używane zamiast x-ms-file-change-time, co oznacza, że zmiany metadanych w źródle mogą również wyzwolić pełną kopię.

azcopy sync [flags]

Przykłady

Synchronizuj pojedynczy plik:

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

Tak samo jak powyżej, ale także oblicza skrót MD5 zawartości pliku, a następnie zapisz ten skrót MD5 jako właściwość Content-MD5 obiektu blob.

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

Zsynchronizuj cały katalog, w tym jego podkatalogi (pamiętaj, że cyklizacja jest domyślnie włączona):

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

Synchronizuj tylko pliki wewnątrz katalogu, ale nie podkatalogów lub plików wewnątrz podkatalogów:

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

Zsynchronizuj podzestaw plików w katalogu (na przykład: tylko pliki jpg i pdf lub jeśli nazwa pliku to "exactName"):

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

Zsynchronizuj cały katalog, ale wyklucz niektóre pliki z zakresu (na przykład każdy plik rozpoczynający się od foo lub kończy się paskiem):

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

Synchronizowanie pojedynczego obiektu blob:

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

Synchronizowanie katalogu wirtualnego:

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

Zsynchronizuj katalog wirtualny o takiej samej nazwie jak obiekt blob (dodaj końcowy ukośnik do ścieżki w celu uściślania):

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

Synchronizuj katalog usługi Azure File (taka sama składnia jak obiekt 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

Uwaga: jeśli są używane razem flagi dołączania i wykluczania, są używane tylko pliki pasujące do wzorców dołączania, ale te pasujące do wzorców wykluczania są ignorowane.

Opcje

--block-size-mb (zmiennoprzecinkowy) Użyj tego rozmiaru bloku (określonego w programie MiB) podczas przekazywania do usługi Azure Storage lub pobierania z usługi Azure Storage. Wartość domyślna jest obliczana automatycznie na podstawie rozmiaru pliku. Ułamki dziesiętne są dozwolone (na przykład: 0,25). Podczas przekazywania lub pobierania maksymalny dozwolony rozmiar bloku wynosi 0,75 * AZCOPY_BUFFER_GB. Aby dowiedzieć się więcej, zobacz Optymalizowanie użycia pamięci.

--check-md5 (ciąg) Określa, jak należy sprawdzić poprawność skrótów MD5 podczas pobierania. Ta opcja jest dostępna tylko podczas pobierania. Dostępne wartości to: NoCheck, LogOnly, FailIfDifferent, FailIfDifferentOrMissing. (wartość domyślna "FailIfDifferent"). (ustawienie domyślne "FailIfDifferent")

--cpk-by-name (ciąg) Klient podał klucz według nazwy, dzięki czemu klienci wysyłający żądania do usługi Azure Blob Storage mogą udostępnić klucz szyfrowania dla poszczególnych żądań. Podana nazwa klucza zostanie pobrana z usługi Azure Key Vault i będzie używana do szyfrowania danych

--cpk-by-value Klient podał klucz według nazwy, dzięki czemu klienci wysyłający żądania do usługi Azure Blob Storage mogą udostępnić klucz szyfrowania dla poszczególnych żądań. Podany klucz i jego skrót zostaną pobrane ze zmiennych środowiskowych

--delete-destination (ciąg) Określa, czy usunąć dodatkowe pliki z miejsca docelowego, które nie są obecne w źródle. Można ustawić wartość true, false lub monit. Jeśli zostanie ustawiony monit, użytkownik zostanie poproszony o pytanie przed zaplanowaniem plików i obiektów blob w celu usunięcia. (wartość domyślna "false"). (wartość domyślna "false")

--dry-run Drukuje ścieżkę plików, które zostaną skopiowane lub usunięte przez polecenie synchronizacji. Ta flaga nie kopiuje ani nie usuwa rzeczywistych plików.

--exclude-attributes (ciąg) (Tylko system Windows) Wyklucz pliki, których atrybuty są zgodne z listą atrybutów. Na przykład: A; S; R

--exclude-path (ciąg) Wyklucz te ścieżki podczas porównywania źródła z miejscem docelowym. Ta opcja nie obsługuje symboli wieloznacznych (*). Sprawdza prefiks ścieżki względnej (na przykład: myFolder; myFolder/subDirName/file.pdf).

--exclude-pattern (ciąg) Wyklucz pliki, w których nazwa jest zgodna z listą wzorców. Na przykład: .jpg;. Pdf; exactName

--exclude-regex (ciąg) Wyklucz ścieżkę względną plików pasujących do wyrażeń regularnych. Oddzielaj wyrażenia regularne znakami ";".

--force-if-read-only Podczas zastępowania istniejącego pliku w systemie Windows lub Azure Files wymuś zastąpienie, aby działało nawet wtedy, gdy istniejący plik ma ustawiony atrybut tylko do odczytu.

--from-to (ciąg) Opcjonalnie określa kombinację miejsca docelowego źródła. Na przykład: LocalBlob, BlobLocal, LocalFile, FileLocal, BlobFile, FileBlob itp.

-h, --help pomoc dotycząca synchronizacji

--include-attributes (ciąg) (Tylko system Windows) Dołącz tylko pliki, których atrybuty są zgodne z listą atrybutów. Na przykład: A; S; R

--include-pattern (ciąg) Uwzględnij tylko pliki, w których nazwa jest zgodna z listą wzorców. Na przykład: .jpg;. Pdf; exactName

--include-regex (ciąg) Uwzględnij ścieżkę względną plików pasujących do wyrażeń regularnych. Oddzielaj wyrażenia regularne znakami ";".

--log-level (ciąg) Zdefiniuj szczegółowość dziennika dla pliku dziennika, dostępne poziomy: INFO(wszystkie żądania i odpowiedzi), OSTRZEŻENIE (wolne odpowiedzi), ERROR (tylko żądania, które zakończyły się niepowodzeniem) i NONE (brak dzienników wyjściowych). (informacje domyślne). (domyślne "INFO")

--mirror-mode Wyłącz porównanie oparte na czasie ostatniej modyfikacji i zastępuje pliki powodujące konflikty i obiekty blob w miejscu docelowym, jeśli ta flaga ma wartość true. Wartość domyślna to false

--put-blob-size-mb Użyj tego rozmiaru (określonego w programie MiB) jako progu, aby określić, czy przekazać obiekt blob jako pojedyncze żądanie PUT podczas przekazywania do usługi Azure Storage. Wartość domyślna jest obliczana automatycznie na podstawie rozmiaru pliku. Ułamki dziesiętne są dozwolone (na przykład: 0,25).

--preserve-permissions Wartość false domyślnie. Zachowuje listy ACL między zasobami obsługującymi (Windows i Azure Files lub ADLS Gen 2 do usługi ADLS Gen 2). W przypadku kont hierarchicznej przestrzeni nazw będziesz potrzebować tokenu SAS kontenera lub OAuth z uprawnieniami Modyfikuj własność i Modyfikuj uprawnienia. W przypadku pobierania będzie również potrzebna flaga --backup , aby przywrócić uprawnienia, w których nowy właściciel nie będzie użytkownikiem z uruchomionym narzędziem AzCopy. Ta flaga dotyczy zarówno plików, jak i folderów, chyba że określono filtr tylko do pliku (na przykład include-pattern).

--preserve-smb-info W przypadku lokalizacji obsługujących protokół SMB flaga zostanie ustawiona na wartość true domyślnie. Zachowuje informacje o właściwościach protokołu SMB (czas ostatniego zapisu, czas tworzenia, bity atrybutów) między zasobami obsługującymi protokół SMB (Azure Files). Ta flaga dotyczy zarówno plików, jak i folderów, chyba że określono filtr tylko do pliku (na przykład include-pattern). Informacje przesyłane dla folderów są takie same jak w przypadku plików, z wyjątkiem czasu ostatniego zapisu, który nie jest zachowywany dla folderów. (wartość domyślna true)

--put-md5 Utwórz skrót MD5 każdego pliku i zapisz skrót jako właściwość Content-MD5 docelowego obiektu blob lub pliku. (Domyślnie skrót NIE jest tworzony). Dostępne tylko podczas przekazywania.

--recursive Prawda domyślnie podczas synchronizacji między katalogami należy przeglądać podkatalogi rekursywnie. (wartość domyślna true). (wartość domyślna true)

--s2s-preserve-access-tier Zachowaj warstwę dostępu podczas kopiowania usługi do usługi. Zapoznaj się z tematem Azure Blob Storage: warstwy dostępu Gorąca, Chłodna i Archiwum, aby upewnić się, że docelowe konto magazynu obsługuje ustawianie warstwy dostępu. W przypadku, gdy ustawienie warstwy dostępu nie jest obsługiwane, użyj polecenia s2sPreserveAccessTier=false , aby pominąć kopiowanie warstwy dostępu. (wartość domyślna true). (wartość domyślna true)

--s2s-preserve-blob-tags Zachowywanie tagów indeksu podczas synchronizacji usługi z jednego magazynu obiektów blob do innego

Opcje dziedziczone z poleceń nadrzędnych

--cap-mbps (zmiennoprzecinkowy) Zwiększa szybkość transferu w megabitach na sekundę. Przepływność chwil po chwili może się nieznacznie różnić od limitu. Jeśli ta opcja jest ustawiona na zero lub zostanie pominięta, przepływność nie jest ograniczona.

--output-type (ciąg) Format danych wyjściowych polecenia. Dostępne opcje to: tekst, json. Wartość domyślna to "text". (domyślny "tekst")

--trusted-microsoft-suffixes (ciąg) Określa inne sufiksy domeny, w których mogą być wysyłane tokeny logowania entra firmy Microsoft. Wartość domyślna to '.core.windows.net;. core.chinacloudapi.cn;. core.cloudapi.de;. core.usgovcloudapi.net;*.storage.azure.net'. Wszystkie wymienione tutaj są dodawane do wartości domyślnej. W celu zapewnienia bezpieczeństwa należy umieścić tutaj tylko domeny platformy Microsoft Azure. Oddziel wiele wpisów średnikami.

Zobacz też