Aracılığıyla paylaş


AzCopy kullanarak Azure Blob depolama ile senkronize etme

AzCopy v10 komut satırı yardımcı programını kullanarak yerel depolamayı Azure Blob depolama ile eşitleyebilirsiniz.

Yerel dosya sisteminin içeriğini bir blob kapsayıcısıyla eşitleyebilirsiniz. Kapsayıcıları ve sanal dizinleri de birbiriyle eşitleyebilirsiniz. Eşzamanlama bir yönlüdür. Başka bir deyişle, bu iki uç noktanın hangisinin kaynak, hangisinin hedef olduğunu seçersiniz. Eşitleme, sunucudan sunucuya API'leri de kullanır. Bu bölümde sunulan örnekler, hiyerarşik ad alanına sahip hesaplarla da çalışır.

Uyarı

AzCopy'nin geçerli sürümü, diğer kaynaklar ve hedefler arasında senkronize etmez (örneğin: Dosya depolama veya Amazon Web Services (AWS) S3 depoları).

Dosyaları karşıya yükleme, blobları indirme veya hesaplar arasında blob kopyalama gibi diğer görev türlerine yönelik örnekleri görmek için bu makalenin Sonraki Adımlar bölümünde sunulan bağlantılara bakın.

Başlayın

AzCopy'yi indirmek için AzCopy'yi kullanmaya başlama makalesine bakın ve depolama hizmetine yetkilendirme kimlik bilgilerini nasıl sağlayabileceğinizi öğrenin.

Uyarı

Bu makaledeki örneklerde, Microsoft Entra Id kullanarak yetkilendirme kimlik bilgilerini sağladığınız varsayılır.

Blob verilerine erişim yetkisi vermek için SAS belirteci kullanmayı tercih ediyorsanız, bu belirteci her AzCopy komutundaki kaynak URL'sine ekleyebilirsiniz. Örneğin: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'.

Yönergeler

Varsayılan olarak, eşitleme komutu dosya adlarını ve son değiştirilen zaman damgalarını karşılaştırır. --compare-hash flagını kullanarak son değiştirilen zaman damgaları yerine MD5 hash'lerini kullanmak için bu davranışı geçersiz kılabilirsiniz. Hedef dizindeki dosyaları, eğer bu dosyalar artık kaynak dizinde yoksa, silmek için isteğe bağlı bayrağı --delete-destination, true veya prompt değerine ayarlayın.

  • bayrağını --delete-destinationtrueolarak ayarlarsanız, AzCopy bir istem sağlamadan dosyaları siler. AzCopy bir dosyayı silmeden önce bir istem gösterilmesini istiyorsanız bayrağını --delete-destination olarak promptayarlayın.

  • --delete-destination bayrağını prompt veya false olarak ayarlamayı planlıyorsanız, eşitleme komutu yerine copy komutunu kullanmayı ve --overwrite parametresini ifSourceNewer olarak ayarlamayı düşünün. Kopyalama işlemi dosyaları taşımadan önce kaynak veya hedefi dizine almak zorunda olmadığından kopyalama komutu daha az bellek tüketir ve daha az faturalama maliyetine neden olur.

  • Bayrağı kullanmayı --compare-hash planlamıyorsanız, eşitleme komutunu çalıştırdığınız makinede doğru bir sistem saati olmalıdır çünkü son değiştirme süreleri dosyanın aktarılıp aktarılmayacağını belirlemede kritik önem taşır. Sisteminizde önemli bir saat dengesizliği varsa, eşitleme komutunu çalıştırmayı planladığınız zamana çok yakın olan hedefte dosyaları değiştirmekten kaçının.

  • AzCopy, verileri depolama hesapları arasında eşitlemek için sunucudan sunucuya API'leri kullanır. Bu, verilerin doğrudan depolama sunucuları arasında kopyalandığını gösterir. Ancak, AzCopy her aktarımı ayarlayıp izler ve daha büyük depolama hesapları için (örneğin, milyonlarca blob içeren hesaplar), AzCopy bu görevleri gerçekleştirmek için önemli miktarda işlem kaynağı gerektirebilir. Bu nedenle, AzCopy'yi Sanal Makineden (VM) çalıştırıyorsanız, VM'nin yükü işlemek için yeterli çekirdeğe/belleğe sahip olduğundan emin olun.

  • Yanlışlıkla silmeleri önlemek için, bayrağını kullanmadan önce geçici silme özelliğini etkinleştirdiğinizden --delete-destination=prompt|true emin olun.

Kapsayıcıyı yerel dosya sisteminde yapılan değişikliklerle güncelleştirme

Bu durumda kapsayıcı hedef, yerel dosya sistemi de kaynaktır.

Tavsiye

Bu örnek, yol bağımsız değişkenlerini tek tırnak işareti içine alır. Windows Komut Kabuğu (cmd.exe) dışında tüm komut kabuklarında tek tırnak işareti kullanın. Windows Komut Kabuğu (cmd.exe) kullanıyorsanız, yol isimlerini tek tırnak ('') yerine çift tırnak ("") içine alın.

Sözdizimi

azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>' --recursive

Örnek

azcopy sync 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive

Yerel dosya sistemini kapsayıcıda yapılan değişikliklerle güncelleştirin

Bu durumda hedef yerel dosya sistemi, kaynak ise kapsayıcıdır.

Tavsiye

Bu örnek, yol bağımsız değişkenlerini tek tırnak işareti içine alır. Windows Komut Kabuğu (cmd.exe) dışında tüm komut kabuklarında tek tırnak işareti kullanın. Windows Komut Kabuğu (cmd.exe) kullanıyorsanız, yol isimlerini tek tırnak ('') yerine çift tırnak ("") içine alın.

Sözdizimi

azcopy sync 'https://<storage-account-name>.blob.core.windows.net/<container-name>' 'C:\myDirectory' --recursive

Örnek

azcopy sync 'https://mystorageaccount.blob.core.windows.net/mycontainer' 'C:\myDirectory' --recursive

Kapsayıcıyı başka bir kapsayıcıdaki değişikliklerle güncelleştirme

Bu komutta görüntülenen ilk kapsayıcı kaynaktır. İkinci kapsayıcı hedef konumudur.

Microsoft Entra Id kullanarak yetkilendirme kimlik bilgilerini sağlarsanız, kaynak ve hedef hesabınızda uygun rolleri ayarladığınızdan emin olun. Bkz. Seçenek 1: Microsoft Entra Id kullanma.

Tavsiye

Bu örnek, yol bağımsız değişkenlerini tek tırnak işareti içine alır. Windows Komut Kabuğu (cmd.exe) dışında tüm komut kabuklarında tek tırnak işareti kullanın. Windows Komut Kabuğu (cmd.exe) kullanıyorsanız, yol isimlerini tek tırnak ('') yerine çift tırnak ("") içine alın.

Sözdizimi

azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>' --recursive

Örnek

azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer' --recursive

Dizini başka bir kapsayıcıdaki bir dizinde yapılan değişikliklerle güncelleştirme

Bu komutta görüntülenen ilk dizin kaynaktır. İkinci dizin hedef dizindir.

Microsoft Entra Id kullanarak yetkilendirme kimlik bilgilerini sağlarsanız, kaynak ve hedef hesabınızda uygun rolleri ayarladığınızdan emin olun. Bkz. Seçenek 1: Microsoft Entra Id kullanma.

Tavsiye

Bu örnek, yol bağımsız değişkenlerini tek tırnak işareti içine alır. Windows Komut Kabuğu (cmd.exe) dışında tüm komut kabuklarında tek tırnak işareti kullanın. Windows Komut Kabuğu (cmd.exe) kullanıyorsanız, yol isimlerini tek tırnak ('') yerine çift tırnak ("") içine alın.

Sözdizimi

azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<directory-name>' --recursive

Örnek

azcopy sync 'https://mysourceaccount.blob.core.windows.net/<container-name>/myDirectory?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/myDirectory' --recursive

SAS belirteci kullanarak kapsayıcıyı başka bir kapsayıcıdaki değişikliklerle güncelleştirme

Bu komutta görüntülenen ilk kapsayıcı kaynaktır. İkinci konteyner hedeftir.

SAS belirteci sağladığınızda, azcopy eşitlemesini kullanırken kaynak ve hedef depolama hesaplarına karşılık gelen bir SAS belirteci kullandığınızdan emin olun.

Sözdizimi

azcopy sync 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<destination-SAS-token>' --recursive

Örnek

azcopy sync 'https://mysourceaccount.blob.core.windows.net/mycontainer?sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-07-04T05:30:08Z&st=2019-07-03T21:30:08Z&spr=https&sig=CAfhgnc9gdGktvB=ska7bAiqIddM845yiyFwdMH481QA8%3D' 'https://mydestinationaccount.blob.core.windows.net/mycontainer/?sv=2018-03-28&ss=qrdu&dst=mco&kp=rwdlapuc&se=2019-07-04T05:30:08Z&st=2019-07-03T21:31:10Z&spr=https&sig=CAfhgnc9gdGktvB=yzx9CAjMKeeN678yiyFwdNU092JC8%6D' --recursive

Tavsiye

Büyük miktarda veri kopya ediyorsanız Azure Depolama Gezgini'ni kullanabilirsiniz.

Kopyaladığınız verilerin boyutunu doğrulamak için üst çubuk menüsünde Diğer ->Klasör İstatistikleri'ni seçerek bayt cinsinden boyut da dahil olmak üzere dizinin ayrıntılarını alın.

İsteğe bağlı bayraklarla eşitleme

İsteğe bağlı bayrakları kullanarak eşitleme işleminizi değiştirebilirsiniz. Aşağıda birkaç örnek verilmiştir.

Senaryo Bayrak
İndirme sırasında MD5 karmalarının ne kadar kesin olarak doğrulanması gerektiğini belirtin. --check-md5=[KontrolYok|SadeceKaydet|FarklıysaHataVer|FarklıysaYaDaEksikseHataVer]
Dosyaları bir kalıba göre hariç tutun. --exclude-path (belirtilen yolu hariç tut)
Eşitlemeyle ilgili günlük girdilerinizin ne kadar ayrıntılı olmasını istediğinizi belirtin. --log-level=[UYARI|HATA|BİLGİ|YOK]
Vhd dosyasının nasıl kopyalanacağını belirtin. --blob-type=BlockBlob --include-pattern "*.vhd" veya --blob-type=BlockBlob

Bayrakların tam listesi için bkz. seçenekler.

Uyarı

Bayrak --recursive, varsayılan olarak true ayarlanır. --exclude-pattern ve --include-pattern bayrakları, dosya yolunun diğer bölümlerine değil, yalnızca dosya adlarına uygulanır.

Sonraki adımlar

Bu makalelerde daha fazla örnek bulabilirsiniz:

Ayarları yapılandırmak, performansı iyileştirmek ve sorunları gidermek için şu makalelere bakın: