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 Linux

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.

W przypadku dystrybucji RHEL 7 zainstaluj zależności ICU i libunwind: yum install -y libunwind icu

Instalowanie narzędzia AzCopy w systemie Linux (wersja 7.2 lub nowsza) jest tak proste, jak wyodrębnianie pakietu tar i uruchamianie skryptu instalacji.

Dystrybucje oparte na systemie RHEL 6: link pobierania

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

Wszystkie inne dystrybucje systemu Linux: link pobierania

wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
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ń administratora, możesz również uruchomić azcopy za pomocą narzędzia azcopy skryptu powłoki w wyodrębnionym folderze.

Alternatywna instalacja w systemie Ubuntu

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.

Obiekt blob: pobieranie

Pobieranie pojedynczego obiektu 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.

Pobieranie pojedynczego obiektu blob z regionu pomocniczego

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łączony magazyn geograficznie nadmiarowy z dostępem do odczytu.

Pobieranie wszystkich obiektów 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 obiekty blob:

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

Załóżmy, że następujące obiekty blob znajdują się 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 dotyczy katalogu wirtualnego, który stanowi pierwszą część nazwy obiektu blob. W powyższym przykładzie katalog wirtualny nie jest zgodny z określonym prefiksem, więc nie jest pobierany żaden obiekt blob. 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 na taki sam jak źródłowe obiekty blob

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

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 przekaże 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 narzędzia 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 podkata katalogach:

abc.txt
abc1.txt
abc2.txt

Określanie typu zawartości MIME docelowego obiektu blob

Domyślnie narzędzie AzCopy ustawia typ zawartości docelowego obiektu blob na application/octet-streamwartość . 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 obiektów blob w operacji przekazywania.

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

Obiekt blob: kopiowanie

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

Kopiowanie pojedynczego obiektu 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łączony magazyn geograficznie nadmiarowy z dostępem do odczytu.

Kopiowanie pojedynczego obiektu blob i jego migawek na kontach 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 operacji kopiowania kontener docelowy zawiera obiekt blob i jego migawki. Kontener zawiera następujący obiekt blob i 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

Narzędzie AzCopy domyślnie kopiuje dane między dwoma punktami końcowymi magazynu asynchronicznie. W związku z tym operacja kopiowania jest uruchamiana w tle przy użyciu pojemności wolnej przepustowości, która nie ma umowy SLA pod względem szybkości kopiowania obiektu blob.

Opcja --sync-copy zapewnia, że operacja kopiowania uzyskuje spójną szybkość. Narzędzie AzCopy wykonuje synchroniczną kopię, pobierając obiekty blob w celu skopiowania z określonego źródła do pamięci lokalnej, a następnie przekazując je do miejsca docelowego usługi 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 wygenerować dodatkowy koszt ruchu wychodzącego w porównaniu z kopią asynchroniczną. Zalecaną metodą jest użycie tej opcji na maszynie wirtualnej platformy Azure, która znajduje 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 określić dokładną nazwę pliku (np. abc.txt), aby pobrać pojedynczy plik, lub określić opcję --recursive pobierania 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: Przekazywanie

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 wszystkie puste foldery nie są przekazywane.

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 między udziałami 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 udziału plików do obiektu 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 obiektu blob wykonywana jest operacja kopiowania po stronie serwera.

Kopiowanie z obiektu blob do udziału 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 obiektu blob do udziału plików 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 zmiany docelowego typu obiektu blob. Dostępne typy to page | block | append.

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

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 zostały określone w wierszu polecenia, wykonując bezpośrednie podstawianie 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ć sygnaturę dostępu współdzielonego dla identyfikatora 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ń administratora, możesz również uruchomić azcopy za pomocą narzędzia azcopy skryptu powłoki w wyodrębnionym folderze.

Znane problemy i najlepsze rozwiązania

Błąd podczas instalowania narzędzia AzCopy

Jeśli wystąpią problemy z instalacją narzędzia AzCopy, możesz spróbować uruchomić narzędzie AzCopy przy użyciu skryptu powłoki 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 parzystoś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: