Udostępnij za pośrednictwem


Przenoszenie danych za pomocą programu AzCopy w wersji 7 w systemie Linux

AzCopy to narzędzie wiersza polecenia umożliwiające kopiowanie danych do i z usług Microsoft Azure Blob i File Storage przy użyciu prostych poleceń zaprojektowanych w celu uzyskania optymalnej wydajności. Dane można kopiować między systemem plików i kontem magazynu lub między kontami magazynu.

Ważne

W tym artykule opisano starszą wersję narzędzia AzCopy. Aby zainstalować najnowszą wersję narzędzia AzCopy, zobacz AzCopy w wersji 10.

Uwaga

Począwszy od programu AzCopy w wersji 7.2, zależności platformy .NET Core są pakowane przy użyciu pakietu AzCopy. Jeśli używasz wersji 7.2 lub nowszej, nie musisz już instalować platformy .NET Core jako wymagań wstępnych.

Pobieranie i instalowanie narzędzia AzCopy

Instalacja w systemie Ubuntu

Uwaga

W zależności od dystrybucji może być konieczne zainstalowanie zależności platformy .NET Core 2.1 wyróżnionych w tym artykule dotyczącym wymagań wstępnych platformy .NET Core.

Ubuntu 14.04

Dodaj źródło apt dla repozytorium produktów Microsoft Linux i zainstaluj narzędzie AzCopy:

sudo echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod/ trusty main" > azure.list
sudo cp ./azure.list /etc/apt/sources.list.d/
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF
sudo apt-get update
sudo apt-get install azcopy

Ubuntu 16.04

Dodaj źródło apt dla repozytorium produktów Microsoft Linux i zainstaluj narzędzie AzCopy:

echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod/ xenial main" > azure.list
sudo cp ./azure.list /etc/apt/sources.list.d/
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF
sudo apt-get update
sudo apt-get install azcopy

Pisanie pierwszego polecenia narzędzia AzCopy

Podstawowa składnia poleceń narzędzia AzCopy to:

azcopy --source <source> --destination <destination> [Options]

W poniższych przykładach przedstawiono różne scenariusze kopiowania danych do i z obiektów blob i plików platformy Microsoft Azure. Zapoznaj się z azcopy --help menu, aby uzyskać szczegółowe wyjaśnienie parametrów używanych w poszczególnych przykładach.

Blob: Pobierz

Pobierz pojedynczy blob

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer/abc.txt \
    --destination /mnt/myfiles/abc.txt \
    --source-key <key> 

Jeśli folder /mnt/myfiles nie istnieje, narzędzie AzCopy utworzy go i pobierze abc.txt do nowego folderu.

Pobierz pojedynczy obiekt blob z regionu drugorzędnego

azcopy \
    --source https://myaccount-secondary.blob.core.windows.net/mynewcontainer/abc.txt \
    --destination /mnt/myfiles/abc.txt \
    --source-key <key>

Należy pamiętać, że musisz mieć włączoną geograficznie zduplikowaną pamięć masową z dostępem tylko do odczytu.

Pobierz wszystkie obiekty blob

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --recursive

Załóżmy, że w określonym kontenerze znajdują się następujące bloby:

abc.txt
abc1.txt
abc2.txt
vd1/a.txt
vd1/abcd.txt

Po operacji pobierania katalog /mnt/myfiles zawiera następujące pliki:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/vd1/a.txt
/mnt/myfiles/vd1/abcd.txt

Jeśli nie określisz opcji --recursive, żaden obiekt blob nie zostanie pobrany.

Pobieranie obiektów blob z określonym prefiksem

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --include "a" \
    --recursive

Zakładamy, że następujące bloby są przechowywane w określonym kontenerze. Wszystkie obiekty blob rozpoczynające się od prefiksu a są pobierane.

abc.txt
abc1.txt
abc2.txt
xyz.txt
vd1\a.txt
vd1\abcd.txt

Po operacji pobierania folder /mnt/myfiles zawiera następujące pliki:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt

Prefiks odnosi się do katalogu wirtualnego, który stanowi pierwszą część nazwy bloba. W powyższym przykładzie katalog wirtualny nie odpowiada określonemu prefiksowi, więc żaden blob nie zostaje pobrany. Ponadto, jeśli opcja --recursive nie zostanie określona, narzędzie AzCopy nie pobiera żadnych obiektów blob.

Ustaw czas ostatniej modyfikacji wyeksportowanych plików, żeby był taki sam jak w obiektach blob źródłowych.

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination "/mnt/myfiles" \
    --source-key <key> \
    --preserve-last-modified-time

Można również wykluczyć obiekty blob z operacji pobierania na podstawie czasu ostatniej modyfikacji. Jeśli na przykład chcesz wykluczyć obiekty blob, których czas ostatniej modyfikacji jest taki sam lub nowszy niż plik docelowy, dodaj --exclude-newer opcję:

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --preserve-last-modified-time \
    --exclude-newer

Lub jeśli chcesz wykluczyć obiekty blob, których czas ostatniej modyfikacji jest taki sam lub starszy niż plik docelowy, dodaj --exclude-older opcję:

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --preserve-last-modified-time \
    --exclude-older

Obiekt blob: przesyłanie

Przekazywanie pojedynczego pliku

azcopy \
    --source /mnt/myfiles/abc.txt \
    --destination https://myaccount.blob.core.windows.net/mycontainer/abc.txt \
    --dest-key <key>

Jeśli określony kontener docelowy nie istnieje, narzędzie AzCopy utworzy go i prześle do niego plik.

Przekazywanie pojedynczego pliku do katalogu wirtualnego

azcopy \
    --source /mnt/myfiles/abc.txt \
    --destination https://myaccount.blob.core.windows.net/mycontainer/vd/abc.txt \
    --dest-key <key>

Jeśli określony katalog wirtualny nie istnieje, narzędzie AzCopy przekazuje plik w celu uwzględnienia katalogu wirtualnego w nazwie obiektu blob (npvd/abc.txt. w powyższym przykładzie).

Przekierowanie z stdin

gzip myarchive.tar -c | azcopy \
    --destination https://myaccount.blob.core.windows.net/mycontainer/mydir/myarchive.tar.gz \
    --dest-key <key>

Przekaż wszystkie pliki

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --recursive

Określenie opcji --recursive powoduje przekazanie zawartości określonego katalogu do usługi Blob Storage rekursywnie, co oznacza, że wszystkie podfoldery i ich pliki również są przekazywane. Załóżmy na przykład, że następujące pliki znajdują się w folderze /mnt/myfiles:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/subfolder/a.txt
/mnt/myfiles/subfolder/abcd.txt

Po operacji przekazywania kontener zawiera następujące pliki:

abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt

Jeśli opcja --recursive nie zostanie określona, zostaną przekazane tylko następujące trzy pliki:

abc.txt
abc1.txt
abc2.txt

Przekazywanie plików pasujących do określonego wzorca

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --include "a*" \
    --recursive

Załóżmy, że następujące pliki znajdują się w folderze /mnt/myfiles:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/xyz.txt
/mnt/myfiles/subfolder/a.txt
/mnt/myfiles/subfolder/abcd.txt

Po operacji przekazywania kontener zawiera następujące pliki:

abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt

Jeśli opcja --recursive nie zostanie określona, narzędzie AzCopy pomija pliki, które znajdują się w podkatalogach.

abc.txt
abc1.txt
abc2.txt

Określ typ zawartości MIME docelowego obiektu blob

Domyślnie narzędzie AzCopy ustawia application/octet-stream jako typ zawartości docelowego blobu. Można jednak jawnie określić typ zawartości za pomocą opcji --set-content-type [content-type]. Ta składnia ustawia typ zawartości dla wszystkich bloków danych w operacji przesyłania.

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/myContainer/ \
    --dest-key <key> \
    --include "ab" \
    --set-content-type "video/mp4"

Jeśli opcja --set-content-type jest określona bez wartości, narzędzie AzCopy ustawia typ zawartości każdego obiektu blob lub pliku zgodnie z rozszerzeniem pliku.

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/myContainer/ \
    --dest-key <key> \
    --include "ab" \
    --set-content-type

Dostosowywanie mapowania typu zawartości MIME

Narzędzie AzCopy używa pliku konfiguracji zawierającego mapowanie rozszerzenia pliku na typ zawartości. Możesz dostosować to mapowanie i w razie potrzeby dodać nowe pary. Mapowanie znajduje się w lokalizacji /usr/lib/azcopy/AzCopyConfig.json

Blob: Kopiuj

Kopiowanie pojedynczego obiektu blob na koncie usługi Storage

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1/abc.txt \
    --destination https://myaccount.blob.core.windows.net/mycontainer2/abc.txt \
    --source-key <key> \
    --dest-key <key>

Podczas kopiowania obiektu blob bez opcji --sync-copy wykonywana jest operacja kopiowania po stronie serwera.

Kopiowanie pojedynczego obiektu blob pomiędzy kontami usługi Storage

azcopy \
    --source https://sourceaccount.blob.core.windows.net/mycontainer1/abc.txt \
    --destination https://destaccount.blob.core.windows.net/mycontainer2/abc.txt \
    --source-key <key1> \
    --dest-key <key2>

Podczas kopiowania obiektu blob bez opcji --sync-copy wykonywana jest operacja kopiowania po stronie serwera.

Skopiuj pojedynczy blob z regionu pomocniczego do regionu podstawowego

azcopy \
    --source https://myaccount1-secondary.blob.core.windows.net/mynewcontainer1/abc.txt \
    --destination https://myaccount2.blob.core.windows.net/mynewcontainer2/abc.txt \
    --source-key <key1> \
    --dest-key <key2>

Należy pamiętać, że musisz mieć włączone geograficznie redundantne przechowywanie z dostępem do odczytu.

Kopiowanie pojedynczego obiektu blob i jego migawek pomiędzy kontami usługi Storage

azcopy \
    --source https://sourceaccount.blob.core.windows.net/mycontainer1/ \
    --destination https://destaccount.blob.core.windows.net/mycontainer2/ \
    --source-key <key1> \
    --dest-key <key2> \
    --include "abc.txt" \
    --include-snapshot

Po zakończeniu operacji kopiowania kontener docelowy zawiera obiekt blob oraz jego migawki. Kontener zawiera następujący obiekt blob oraz jego migawki.

abc.txt
abc (2013-02-25 080757).txt
abc (2014-02-21 150331).txt

Synchroniczne kopiowanie obiektów blob między kontami usługi Storage

AzCopy domyślnie umożliwia asynchroniczne kopiowanie danych między dwoma punktami końcowymi magazynu. W związku z tym operacja kopiowania działa w tle, używając dostępnej przepustowości, która nie jest objęta umową dotyczącą poziomu usług (SLA) jeśli chodzi o szybkość kopiowania blobu.

Opcja --sync-copy zapewnia, że operacja kopiowania uzyskuje spójną szybkość. Narzędzie AzCopy wykonuje synchroniczną kopię, pobierając bloby z określonego źródła do pamięci lokalnej, a następnie przesyłając je do docelowej lokalizacji Blob Storage.

azcopy \
    --source https://myaccount1.blob.core.windows.net/myContainer/ \
    --destination https://myaccount2.blob.core.windows.net/myContainer/ \
    --source-key <key1> \
    --dest-key <key2> \
    --include "ab" \
    --sync-copy

--sync-copy może generować dodatkowy koszt związany z transferem danych w porównaniu z kopiowaniem asynchronicznym. Zaleca się użycie tej opcji na maszynie wirtualnej platformy Azure znajdującej się w tym samym regionie co źródłowe konto magazynu, aby uniknąć kosztów ruchu wychodzącego.

Plik: Pobierz

Pobieranie pojedynczego pliku

azcopy \
    --source https://myaccount.file.core.windows.net/myfileshare/myfolder1/abc.txt \
    --destination /mnt/myfiles/abc.txt \
    --source-key <key>

Jeśli określone źródło jest udziałem plików platformy Azure, musisz wtedy albo określić dokładną nazwę pliku (np.abc.txt), aby pobrać pojedynczy plik, albo ustalić opcję --recursive do pobrania wszystkich plików w udziale rekursywnie. Próba określenia zarówno wzorca pliku, jak i opcji --recursive razem powoduje wystąpienie błędu.

Pobierz wszystkie pliki

azcopy \
    --source https://myaccount.file.core.windows.net/myfileshare/ \
    --destination /mnt/myfiles \
    --source-key <key> \
    --recursive

Pamiętaj, że wszystkie puste foldery nie są pobierane.

Plik: Prześlij

Przekazywanie pojedynczego pliku

azcopy \
    --source /mnt/myfiles/abc.txt \
    --destination https://myaccount.file.core.windows.net/myfileshare/abc.txt \
    --dest-key <key>

Przekaż wszystkie pliki

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.file.core.windows.net/myfileshare/ \
    --dest-key <key> \
    --recursive

Należy pamiętać, że puste foldery nie są przesyłane.

Przekazywanie plików pasujących do określonego wzorca

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.file.core.windows.net/myfileshare/ \
    --dest-key <key> \
    --include "ab*" \
    --recursive

Plik: Kopiuj

Kopiowanie pomiędzy zasobami plików

azcopy \
    --source https://myaccount1.file.core.windows.net/myfileshare1/ \
    --destination https://myaccount2.file.core.windows.net/myfileshare2/ \
    --source-key <key1> \
    --dest-key <key2> \
    --recursive

Podczas kopiowania pliku między udziałami plików wykonywana jest operacja kopiowania po stronie serwera.

Kopiowanie z zasobu udostępniania plików do zasobu blob.

azcopy \ 
    --source https://myaccount1.file.core.windows.net/myfileshare/ \
    --destination https://myaccount2.blob.core.windows.net/mycontainer/ \
    --source-key <key1> \
    --dest-key <key2> \
    --recursive

Podczas kopiowania pliku z udziału plików do blobu, wykonywana jest operacja kopiowania pliku po stronie serwera.

Kopiowanie z blob do systemu plików

azcopy \
    --source https://myaccount1.blob.core.windows.net/mycontainer/ \
    --destination https://myaccount2.file.core.windows.net/myfileshare/ \
    --source-key <key1> \
    --dest-key <key2> \
    --recursive

Podczas kopiowania pliku z zasobu blob do udziału plikowego, wykonywana jest operacja kopiowania po stronie serwera.

Synchroniczne kopiowanie plików

Możesz określić --sync-copy opcję kopiowania danych z usługi File Storage do usługi File Storage, z usługi File Storage do usługi Blob Storage i z usługi Blob Storage do usługi File Storage synchronicznie. Narzędzie AzCopy uruchamia tę operację, pobierając dane źródłowe do pamięci lokalnej, a następnie przekazując je do miejsca docelowego. W takim przypadku ma zastosowanie standardowy koszt ruchu wychodzącego.

azcopy \
    --source https://myaccount1.file.core.windows.net/myfileshare1/ \
    --destination https://myaccount2.file.core.windows.net/myfileshare2/ \
    --source-key <key1> \
    --dest-key <key2> \
    --recursive \
    --sync-copy

Podczas kopiowania z usługi File Storage do usługi Blob Storage domyślnym typem obiektu blob jest blokowy obiekt blob, użytkownik może określić opcję --blob-type page, aby zmienić docelowy typ obiektu blob. Dostępne typy to page | block | append.

Należy pamiętać, że --sync-copy może spowodować dodatkowy koszt ruchu wychodzącego w porównaniu z kopiowaniem asynchronicznym. Zaleca się użycie tej opcji na maszynie wirtualnej Azure, która znajduje się w tym samym regionie co źródłowe konto magazynu, aby uniknąć kosztów egressu.

Inne funkcje narzędzia AzCopy

Kopiowanie tylko danych, które nie istnieją w miejscu docelowym

Parametry --exclude-older i --exclude-newer umożliwiają wykluczanie odpowiednio starszych lub nowszych zasobów źródłowych z kopiowanych. Jeśli chcesz skopiować tylko zasoby źródłowe, które nie istnieją w miejscu docelowym, możesz określić oba parametry w poleceniu narzędzia AzCopy:

--source http://myaccount.blob.core.windows.net/mycontainer --destination /mnt/myfiles --source-key <sourcekey> --recursive --exclude-older --exclude-newer

--source /mnt/myfiles --destination http://myaccount.file.core.windows.net/myfileshare --dest-key <destkey> --recursive --exclude-older --exclude-newer

--source http://myaccount.blob.core.windows.net/mycontainer --destination http://myaccount.blob.core.windows.net/mycontainer1 --source-key <sourcekey> --dest-key <destkey> --recursive --exclude-older --exclude-newer

Używanie pliku konfiguracji do określania parametrów wiersza polecenia

azcopy --config-file "azcopy-config.ini"

W pliku konfiguracji można uwzględnić dowolne parametry wiersza polecenia narzędzia AzCopy. Narzędzie AzCopy przetwarza parametry w pliku, tak jakby były określone w wierszu polecenia, dokonując bezpośredniego zastąpienia zawartością pliku.

Załóżmy, że plik konfiguracji o nazwie copyoperation, który zawiera następujące wiersze. Każdy parametr narzędzia AzCopy można określić w jednym wierszu.

--source http://myaccount.blob.core.windows.net/mycontainer --destination /mnt/myfiles --source-key <sourcekey> --recursive --quiet

lub w osobnych wierszach:

--source http://myaccount.blob.core.windows.net/mycontainer
--destination /mnt/myfiles
--source-key<sourcekey>
--recursive
--quiet

Narzędzie AzCopy kończy się niepowodzeniem w przypadku podzielenia parametru między dwa wiersze, jak pokazano poniżej dla parametru --source-key :

http://myaccount.blob.core.windows.net/mycontainer
/mnt/myfiles
--sourcekey
<sourcekey>
--recursive
--quiet

Określanie sygnatury dostępu współdzielonego (SAS)

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1/abc.txt \
    --destination https://myaccount.blob.core.windows.net/mycontainer2/abc.txt \
    --source-sas <SAS1> \
    --dest-sas <SAS2>

Możesz również określić SAS dla URI kontenera:

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1/?SourceSASToken \
    --destination /mnt/myfiles \
    --recursive

Folder plików dziennika

Za każdym razem, gdy wydasz polecenie narzędziu AzCopy, sprawdza, czy plik dziennika istnieje w folderze domyślnym, czy istnieje w folderze określonym za pomocą tej opcji. Jeśli plik dziennika nie istnieje w obu miejscach, narzędzie AzCopy traktuje operację jako nową i generuje nowy plik dziennika.

Jeśli plik dziennika istnieje, narzędzie AzCopy sprawdza, czy wejściowy wiersz polecenia jest zgodny z wierszem polecenia w pliku dziennika. Jeśli dwa wiersze polecenia są zgodne, narzędzie AzCopy wznowi niekompletną operację. Jeśli nie są one zgodne, narzędzie AzCopy monituje użytkownika o zastąpienie pliku dziennika w celu rozpoczęcia nowej operacji lub anulowania bieżącej operacji.

Jeśli chcesz użyć domyślnej lokalizacji pliku dziennika:

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --resume

Jeśli pominięto opcję --resume, lub określ opcję --resume bez ścieżki folderu, jak pokazano powyżej, narzędzie AzCopy tworzy plik dziennika w domyślnej lokalizacji, czyli ~\Microsoft\Azure\AzCopy. Jeśli plik dziennika już istnieje, narzędzie AzCopy wznowi operację na podstawie pliku dziennika.

Jeśli chcesz określić lokalizację niestandardową dla pliku dziennika:

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key key \
    --resume "/mnt/myjournal"

W tym przykładzie tworzony jest plik dziennika, jeśli jeszcze nie istnieje. Jeśli istnieje, narzędzie AzCopy wznawia operację na podstawie pliku dziennika.

Jeśli chcesz wznowić operację narzędzia AzCopy, powtórz to samo polecenie. Narzędzie AzCopy w systemie Linux wyświetli monit o potwierdzenie:

Incomplete operation with same command line detected at the journal directory "/home/myaccount/Microsoft/Azure/AzCopy", do you want to resume the operation? Choose Yes to resume, choose No to overwrite the journal to start a new operation. (Yes/No)

Pełne dzienniki wyjściowe

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --verbose

Określ liczbę współbieżnych operacji do uruchomienia

Opcja --parallel-level określa liczbę współbieżnych operacji kopiowania. Domyślnie narzędzie AzCopy uruchamia pewną liczbę operacji współbieżnych w celu zwiększenia przepływności transferu danych. Liczba współbieżnych operacji jest równa osiem razy liczbie procesorów, które masz. Jeśli używasz narzędzia AzCopy w sieci o niskiej przepustowości, możesz określić niższą liczbę dla parametru --parallel-level, aby uniknąć awarii spowodowanej konkurencją zasobów.

Napiwek

Aby wyświetlić pełną listę parametrów narzędzia AzCopy, zapoznaj się z menu "azcopy --help".

Kroki instalacji narzędzia AzCopy 7.1 i starszych wersji

Narzędzie AzCopy w systemie Linux (wersja 7.1 i starsze) wymaga platformy .NET Core. Instrukcje instalacji są dostępne na stronie instalacji platformy .NET Core.

Na przykład zacznij od zainstalowania platformy .NET Core w systemie Ubuntu 16.10. Aby zapoznać się z najnowszym przewodnikiem instalacji, odwiedź stronę instalacji platformy .NET Core w systemie Linux .

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ yakkety main" > /etc/apt/sources.list.d/dotnetdev.list' 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-sdk-2.0.0

Po zainstalowaniu platformy .NET Core pobierz i zainstaluj narzędzie AzCopy.

wget -O azcopy.tar.gz https://aka.ms/downloadazcopyprlinux
tar -xf azcopy.tar.gz
sudo ./install.sh

Wyodrębnione pliki można usunąć po zainstalowaniu narzędzia AzCopy w systemie Linux. Alternatywnie, jeśli nie masz uprawnień superużytkownika, możesz również uruchomić azcopy używając skryptu powłoki azcopy w wyodrębnionym folderze.

Znane problemy i najlepsze rozwiązania

Błąd podczas instalowania narzędzia AzCopy

Jeśli wystąpią problemy z instalacją AzCopy, możesz spróbować uruchomić je, używając skryptu bash w wyodrębnionym azcopy folderze.

cd azcopy
./azcopy

Ograniczanie współbieżnych zapisów podczas kopiowania danych

Podczas kopiowania obiektów blob lub plików za pomocą narzędzia AzCopy należy pamiętać, że podczas kopiowania dane mogą być modyfikowane przez inną aplikację. Jeśli to możliwe, upewnij się, że kopiowane dane nie są modyfikowane podczas operacji kopiowania. Na przykład podczas kopiowania wirtualnego dysku twardego skojarzonego z maszyną wirtualną platformy Azure upewnij się, że żadne inne aplikacje nie zapisują obecnie na dysku VHD. Dobrym sposobem na to jest dzierżawienie zasobu do skopiowania. Alternatywnie możesz najpierw utworzyć migawkę wirtualnego dysku twardego, a następnie skopiować migawkę.

Jeśli nie możesz uniemożliwić innym aplikacjom zapisywania w obiektach blob lub plikach podczas ich kopiowania, pamiętaj, że po zakończeniu zadania skopiowane zasoby mogą nie mieć już pełnej zgodności z zasobami źródłowymi.

Uruchamianie wielu procesów narzędzia AzCopy

Możesz uruchomić wiele procesów narzędzia AzCopy na jednym kliencie, zapewniając, że używasz różnych folderów dziennika. Używanie jednego folderu dziennika dla wielu procesów narzędzia AzCopy nie jest obsługiwane.

Pierwszy proces:

azcopy \
    --source /mnt/myfiles1 \
    --destination https://myaccount.blob.core.windows.net/mycontainer/myfiles1 \
    --dest-key <key> \
    --resume "/mnt/myazcopyjournal1"

Drugi proces:

azcopy \
    --source /mnt/myfiles2 \
    --destination https://myaccount.blob.core.windows.net/mycontainer/myfiles2 \
    --dest-key <key> \
    --resume "/mnt/myazcopyjournal2"

Następne kroki

Aby uzyskać więcej informacji na temat usługi Azure Storage i narzędzia AzCopy, zapoznaj się z następującymi zasobami:

Dokumentacja usługi Azure Storage:

Wpisy w blogu usługi Azure Storage: