نقل البيانات باستخدام AzCopy v7 على Linux
AzCopy هي أداة مساعدة سطر الأوامر مصممة لنسخ البيانات من/إلى Microsoft Azure Blob وتخزين الملفات، باستخدام أوامر بسيطة مصممة لتحقيق الأداء الأمثل. يمكنك نسخ البيانات بين نظام الملفات وحساب التخزين، أو بين حسابات التخزين.
هام
تصف هذه المقالة إصدارا قديما من AzCopy. لتثبيت أحدث إصدار من AzCopy، راجع AzCopy v10.
ملاحظة
بدءا من إصدار AzCopy 7.2، يتم حزم تبعيات .NET Core مع حزمة AzCopy. إذا كنت تستخدم الإصدار 7.2 أو أحدث، فلن تحتاج إلى تثبيت .NET Core كملزم مسبق.
تنزيل AzCopy وتثبيته
التثبيت على Linux
ملاحظة
قد تحتاج إلى تثبيت تبعيات .NET Core 2.1 المميزة في مقالة المتطلبات المسبقة ل .NET Core اعتمادا على التوزيع الخاص بك.
بالنسبة لتوزيعات RHEL 7، قم بتثبيت تبعيات ICU و libunwind: yum install -y libunwind icu
يعد تثبيت AzCopy على Linux (الإصدار 7.2 أو أحدث) سهلا مثل استخراج حزمة tar وتشغيل البرنامج النصي التثبيت.
التوزيعات المستندة إلى RHEL 6: ارتباط التنزيل
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinuxrhel6
tar -xf azcopy.tar.gz
sudo ./install.sh
جميع توزيعات Linux الأخرى: رابط التنزيل
wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
tar -xf azcopy.tar.gz
sudo ./install.sh
يمكنك إزالة الملفات المستخرجة بمجرد تثبيت AzCopy على Linux. بدلا من ذلك، إذا لم يكن لديك امتيازات المستخدم الفائق، يمكنك أيضا تشغيل azcopy
باستخدام البرنامج النصي shell azcopy في المجلد المستخرج.
تثبيت بديل على Ubuntu
Ubuntu 14.04
أضف مصدر apt لمستودع منتجات Microsoft Linux وقم بتثبيت 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
أضف مصدر apt لمستودع منتجات Microsoft Linux وقم بتثبيت 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
كتابة أول أمر AzCopy
بناء الجملة الأساسي لأوامر AzCopy هي:
azcopy --source <source> --destination <destination> [Options]
توضح الأمثلة التالية سيناريوهات مختلفة لنسخ البيانات من وإلى Microsoft Azure Blobs والملفات. azcopy --help
راجع القائمة للحصول على شرح مفصل للمعلمات المستخدمة في كل عينة.
Blob: تنزيل
تنزيل كائن ثنائي كبير الحجم واحد
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer/abc.txt \
--destination /mnt/myfiles/abc.txt \
--source-key <key>
إذا لم يكن المجلد /mnt/myfiles
موجودا، يقوم AzCopy بإنشائه وتنزيله abc.txt
في المجلد الجديد.
تنزيل كائن ثنائي كبير الحجم واحد من المنطقة الثانوية
azcopy \
--source https://myaccount-secondary.blob.core.windows.net/mynewcontainer/abc.txt \
--destination /mnt/myfiles/abc.txt \
--source-key <key>
لاحظ أنه يجب تمكين التخزين الجغرافي المتكرر للوصول للقراءة.
تنزيل جميع الكائنات الثنائية كبيرة الحجم
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination /mnt/myfiles \
--source-key <key> \
--recursive
افترض أن الكائنات الثنائية كبيرة الحجم التالية موجودة في الحاوية المحددة:
abc.txt
abc1.txt
abc2.txt
vd1/a.txt
vd1/abcd.txt
بعد عملية التنزيل، يتضمن الدليل /mnt/myfiles
الملفات التالية:
/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/vd1/a.txt
/mnt/myfiles/vd1/abcd.txt
إذا لم تحدد الخيار --recursive
، فلن يتم تنزيل أي كائن ثنائي كبير الحجم.
تنزيل الكائنات الثنائية كبيرة الحجم مع بادئة محددة
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination /mnt/myfiles \
--source-key <key> \
--include "a" \
--recursive
افترض أن الكائنات الثنائية كبيرة الحجم التالية موجودة في الحاوية المحددة. يتم تنزيل جميع الكائنات الثنائية كبيرة الحجم التي تبدأ بالبادئة a
.
abc.txt
abc1.txt
abc2.txt
xyz.txt
vd1\a.txt
vd1\abcd.txt
بعد عملية التنزيل، يتضمن المجلد /mnt/myfiles
الملفات التالية:
/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
تنطبق البادئة على الدليل الظاهري، الذي يشكل الجزء الأول من اسم الكائن الثنائي كبير الحجم. في المثال الموضح أعلاه، لا يتطابق الدليل الظاهري مع البادئة المحددة، لذلك لا يتم تنزيل كائن ثنائي كبير الحجم. بالإضافة إلى ذلك، إذا لم يتم تحديد الخيار --recursive
، لا يقوم AzCopy بتنزيل أي كائنات ثنائية كبيرة الحجم.
تعيين آخر وقت تم تعديله للملفات المصدرة ليكون نفس الكائنات الثنائية كبيرة الحجم المصدر
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination "/mnt/myfiles" \
--source-key <key> \
--preserve-last-modified-time
يمكنك أيضا استبعاد الكائنات الثنائية كبيرة الحجم من عملية التنزيل استنادا إلى آخر وقت تم تعديله. على سبيل المثال، إذا كنت تريد استبعاد الكائنات الثنائية كبيرة الحجم التي يكون آخر وقت تعديل لها هو نفسه أو أحدث من الملف الوجهة --exclude-newer
، أضف الخيار:
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination /mnt/myfiles \
--source-key <key> \
--preserve-last-modified-time \
--exclude-newer
أو إذا كنت تريد استبعاد الكائنات الثنائية كبيرة الحجم التي يكون آخر وقت تعديل لها هو نفسه أو أقدم من الملف الوجهة --exclude-older
، فأضف الخيار:
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer \
--destination /mnt/myfiles \
--source-key <key> \
--preserve-last-modified-time \
--exclude-older
Blob: تحميل
تحميل ملف واحد
azcopy \
--source /mnt/myfiles/abc.txt \
--destination https://myaccount.blob.core.windows.net/mycontainer/abc.txt \
--dest-key <key>
إذا كانت حاوية الوجهة المحددة غير موجودة، يقوم AzCopy بإنشائها، وتحميل الملف فيها.
تحميل ملف واحد إلى الدليل الظاهري
azcopy \
--source /mnt/myfiles/abc.txt \
--destination https://myaccount.blob.core.windows.net/mycontainer/vd/abc.txt \
--dest-key <key>
إذا لم يكن الدليل الظاهري المحدد موجودا، يقوم AzCopy بتحميل الملف لتضمين الدليل الظاهري في اسم الكائن الثنائي كبير الحجم (على سبيل المثال، vd/abc.txt
في المثال أعلاه).
إعادة التوجيه من stdin
gzip myarchive.tar -c | azcopy \
--destination https://myaccount.blob.core.windows.net/mycontainer/mydir/myarchive.tar.gz \
--dest-key <key>
تحميل جميع الملفات
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key <key> \
--recursive
يؤدي تحديد الخيار --recursive
إلى تحميل محتويات الدليل المحدد إلى تخزين Blob بشكل متكرر، ما يعني أنه يتم تحميل جميع المجلدات الفرعية وملفاتها أيضا. على سبيل المثال، افترض أن الملفات التالية موجودة في المجلد /mnt/myfiles
:
/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/subfolder/a.txt
/mnt/myfiles/subfolder/abcd.txt
بعد عملية التحميل، تتضمن الحاوية الملفات التالية:
abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt
عند عدم تحديد الخيار --recursive
، يتم تحميل الملفات الثلاثة التالية فقط:
abc.txt
abc1.txt
abc2.txt
تحميل ملفات مطابقة للنمط المحدد
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key <key> \
--include "a*" \
--recursive
افترض أن الملفات التالية موجودة في المجلد /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
بعد عملية التحميل، تتضمن الحاوية الملفات التالية:
abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt
عندما لا يتم تحديد الخيار --recursive
، يتخطى AzCopy الملفات الموجودة في الدلائل الفرعية:
abc.txt
abc1.txt
abc2.txt
تحديد نوع محتوى MIME للكائن الثنائي كبير الحجم الوجهة
بشكل افتراضي، يقوم AzCopy بتعيين نوع محتوى الكائن الثنائي كبير الحجم الوجهة إلى application/octet-stream
. ومع ذلك، يمكنك تحديد نوع المحتوى بشكل صريح عبر الخيار --set-content-type [content-type]
. يعين بناء الجملة هذا نوع المحتوى لكافة الكائنات الثنائية كبيرة الحجم في عملية التحميل.
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/myContainer/ \
--dest-key <key> \
--include "ab" \
--set-content-type "video/mp4"
إذا تم تحديد الخيار --set-content-type
بدون قيمة، يقوم AzCopy بتعيين نوع محتوى كل كائن ثنائي كبير الحجم أو ملف وفقا لملحق الملف الخاص به.
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/myContainer/ \
--dest-key <key> \
--include "ab" \
--set-content-type
تخصيص تعيين نوع محتوى MIME
يستخدم AzCopy ملف تكوين يحتوي على تعيين ملحق الملف إلى نوع المحتوى. يمكنك تخصيص هذا التعيين وإضافة أزواج جديدة حسب الحاجة. يقع التعيين في /usr/lib/azcopy/AzCopyConfig.json
Blob: نسخ
نسخ كائن ثنائي كبير الحجم واحد داخل حساب التخزين
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>
عند نسخ كائن ثنائي كبير الحجم بدون --خيار نسخ المزامنة، يتم تنفيذ عملية نسخ من جانب الخادم .
نسخ كائن ثنائي كبير الحجم واحد عبر حسابات التخزين
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>
عند نسخ كائن ثنائي كبير الحجم بدون --خيار نسخ المزامنة، يتم تنفيذ عملية نسخ من جانب الخادم .
نسخ كائن ثنائي كبير الحجم واحد من المنطقة الثانوية إلى المنطقة الأساسية
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>
لاحظ أنه يجب تمكين التخزين الجغرافي المتكرر للوصول للقراءة.
نسخ كائن ثنائي كبير الحجم واحد ولقطاته عبر حسابات التخزين
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
بعد عملية النسخ، تتضمن الحاوية الهدف الكائن الثنائي كبير الحجم ولقطاته. تتضمن الحاوية الكائن الثنائي كبير الحجم التالي ولقطاته:
abc.txt
abc (2013-02-25 080757).txt
abc (2014-02-21 150331).txt
نسخ الكائنات الثنائية كبيرة الحجم بشكل متزامن عبر حسابات التخزين
يقوم AzCopy بشكل افتراضي بنسخ البيانات بين نقطتي نهاية التخزين بشكل غير متزامن. لذلك، يتم تشغيل عملية النسخ في الخلفية باستخدام سعة النطاق الترددي الاحتياطية التي لا تحتوي على اتفاقية مستوى الخدمة من حيث مدى سرعة نسخ كائن ثنائي كبير الحجم.
--sync-copy
يضمن الخيار أن عملية النسخ تحصل على سرعة متناسقة. يقوم AzCopy بإجراء النسخة المتزامنة عن طريق تنزيل الكائنات الثنائية كبيرة الحجم لنسخها من المصدر المحدد إلى الذاكرة المحلية، ثم تحميلها إلى وجهة تخزين Blob.
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
قد تولد تكلفة خروج إضافية مقارنة بالنسخة غير المتزامنة. النهج الموصى به هو استخدام هذا الخيار في جهاز Azure الظاهري، الموجود في نفس منطقة حساب التخزين المصدر لتجنب تكلفة الخروج.
ملف: تنزيل
تنزيل ملف واحد
azcopy \
--source https://myaccount.file.core.windows.net/myfileshare/myfolder1/abc.txt \
--destination /mnt/myfiles/abc.txt \
--source-key <key>
إذا كان المصدر المحدد عبارة عن مشاركة ملف Azure، فيجب عليك إما تحديد اسم الملف الدقيق، (على سبيل المثالabc.txt
) لتنزيل ملف واحد، أو تحديد خيار --recursive
لتنزيل جميع الملفات في المشاركة بشكل متكرر. تؤدي محاولة تحديد نمط الملف وخياره --recursive
معا إلى حدوث خطأ.
تنزيل جميع الملفات
azcopy \
--source https://myaccount.file.core.windows.net/myfileshare/ \
--destination /mnt/myfiles \
--source-key <key> \
--recursive
لاحظ أنه لا يتم تنزيل أي مجلدات فارغة.
ملف: تحميل
تحميل ملف واحد
azcopy \
--source /mnt/myfiles/abc.txt \
--destination https://myaccount.file.core.windows.net/myfileshare/abc.txt \
--dest-key <key>
تحميل جميع الملفات
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.file.core.windows.net/myfileshare/ \
--dest-key <key> \
--recursive
لاحظ أنه لا يتم تحميل أي مجلدات فارغة.
تحميل ملفات مطابقة للنمط المحدد
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.file.core.windows.net/myfileshare/ \
--dest-key <key> \
--include "ab*" \
--recursive
ملف: نسخ
نسخ عبر مشاركات الملفات
azcopy \
--source https://myaccount1.file.core.windows.net/myfileshare1/ \
--destination https://myaccount2.file.core.windows.net/myfileshare2/ \
--source-key <key1> \
--dest-key <key2> \
--recursive
عند نسخ ملف عبر مشاركات الملفات، يتم تنفيذ عملية نسخ من جانب الخادم .
نسخ من مشاركة الملف إلى كائن ثنائي كبير الحجم
azcopy \
--source https://myaccount1.file.core.windows.net/myfileshare/ \
--destination https://myaccount2.blob.core.windows.net/mycontainer/ \
--source-key <key1> \
--dest-key <key2> \
--recursive
عند نسخ ملف من مشاركة ملف إلى كائن ثنائي كبير الحجم، يتم تنفيذ عملية نسخ من جانب الخادم .
نسخ من كائن ثنائي كبير الحجم إلى مشاركة ملف
azcopy \
--source https://myaccount1.blob.core.windows.net/mycontainer/ \
--destination https://myaccount2.file.core.windows.net/myfileshare/ \
--source-key <key1> \
--dest-key <key2> \
--recursive
عند نسخ ملف من كائن ثنائي كبير الحجم إلى مشاركة ملف، يتم تنفيذ عملية نسخ من جانب الخادم .
نسخ الملفات بشكل متزامن
يمكنك تحديد --sync-copy
خيار نسخ البيانات من File Storage إلى File Storage، ومن File Storage إلى Blob Storage ومن Blob Storage إلى File Storage بشكل متزامن. يقوم AzCopy بتشغيل هذه العملية عن طريق تنزيل البيانات المصدر إلى الذاكرة المحلية، ثم تحميلها إلى الوجهة. في هذه الحالة، تنطبق تكلفة الخروج القياسية.
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
عند النسخ من File Storage إلى Blob Storage، يكون نوع الكائن الثنائي كبير الحجم الافتراضي هو كائن ثنائي كبير الحجم للكتلة، يمكن للمستخدم تحديد خيار --blob-type page
لتغيير نوع الكائن الثنائي كبير الحجم الوجهة. الأنواع المتوفرة هي page | block | append
.
لاحظ أن --sync-copy
قد يولد تكلفة خروج إضافية مقارنة بالنسخة غير المتزامنة. النهج الموصى به هو استخدام هذا الخيار في جهاز Azure الظاهري، الموجود في نفس منطقة حساب التخزين المصدر لتجنب تكلفة الخروج.
ميزات AzCopy الأخرى
نسخ البيانات غير الموجودة في الوجهة فقط
--exclude-older
تسمح لك المعلمات و --exclude-newer
باستبعاد الموارد المصدر القديمة أو الأحدث من النسخ، على التوالي. إذا كنت تريد فقط نسخ موارد المصدر غير الموجودة في الوجهة، يمكنك تحديد كلا المعلمتين في الأمر 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
استخدام ملف تكوين لتحديد معلمات سطر الأوامر
azcopy --config-file "azcopy-config.ini"
يمكنك تضمين أي معلمات سطر أوامر AzCopy في ملف تكوين. يعالج AzCopy المعلمات في الملف كما لو كانت محددة في سطر الأوامر، وإجراء استبدال مباشر بمحتويات الملف.
افترض ملف تكوين يسمى copyoperation
، يحتوي على الأسطر التالية. يمكن تحديد كل معلمة AzCopy على سطر واحد.
--source http://myaccount.blob.core.windows.net/mycontainer --destination /mnt/myfiles --source-key <sourcekey> --recursive --quiet
أو على خطوط منفصلة:
--source http://myaccount.blob.core.windows.net/mycontainer
--destination /mnt/myfiles
--source-key<sourcekey>
--recursive
--quiet
يفشل AzCopy إذا قمت بتقسيم المعلمة عبر سطرين، كما هو موضح هنا للمعلمة --source-key
:
http://myaccount.blob.core.windows.net/mycontainer
/mnt/myfiles
--sourcekey
<sourcekey>
--recursive
--quiet
تحديد توقيع وصول مشترك (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>
يمكنك أيضا تحديد SAS على URI الحاوية:
azcopy \
--source https://myaccount.blob.core.windows.net/mycontainer1/?SourceSASToken \
--destination /mnt/myfiles \
--recursive
مجلد ملف دفتر اليومية
في كل مرة تصدر فيها أمرا إلى AzCopy، فإنه يتحقق مما إذا كان ملف دفتر اليومية موجودا في المجلد الافتراضي، أو ما إذا كان موجودا في مجلد حددته عبر هذا الخيار. إذا لم يكن ملف دفتر اليومية موجودا في أي من المكانين، فإن AzCopy يعامل العملية على أنها جديدة ويقوم بإنشاء ملف دفتر يومية جديد.
إذا كان ملف دفتر اليومية موجودا، يتحقق AzCopy ما إذا كان سطر الأوامر الذي تقوم بإدخاله يطابق سطر الأوامر في ملف دفتر اليومية. إذا تطابق سطرا الأوامر، يستأنف AzCopy العملية غير المكتملة. إذا لم تتطابق، يطالب AzCopy المستخدم إما بالكتابة فوق ملف دفتر اليومية لبدء عملية جديدة، أو لإلغاء العملية الحالية.
إذا كنت تريد استخدام الموقع الافتراضي لملف دفتر اليومية:
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key <key> \
--resume
إذا حذفت الخيار --resume
، أو حدد الخيار --resume
بدون مسار المجلد، كما هو موضح أعلاه، يقوم AzCopy بإنشاء ملف دفتر اليومية في الموقع الافتراضي، وهو ~\Microsoft\Azure\AzCopy
. إذا كان ملف دفتر اليومية موجودا بالفعل، فسيستأنف AzCopy العملية استنادا إلى ملف دفتر اليومية.
إذا كنت تريد تحديد موقع مخصص لملف دفتر اليومية:
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key key \
--resume "/mnt/myjournal"
ينشئ هذا المثال ملف دفتر اليومية إذا لم يكن موجودا بالفعل. إذا كان موجودا، فسيستأنف AzCopy العملية استنادا إلى ملف دفتر اليومية.
إذا كنت ترغب في استئناف عملية AzCopy، كرر نفس الأمر. سيطالب AzCopy على Linux بعد ذلك بالتأكيد:
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)
سجلات الإخراج المطولة
azcopy \
--source /mnt/myfiles \
--destination https://myaccount.blob.core.windows.net/mycontainer \
--dest-key <key> \
--verbose
تحديد عدد العمليات المتزامنة للبدء
يحدد الخيار --parallel-level
عدد عمليات النسخ المتزامنة. بشكل افتراضي، يبدأ AzCopy عددا معينا من العمليات المتزامنة لزيادة معدل نقل البيانات. عدد العمليات المتزامنة يساوي ثمانية أضعاف عدد المعالجات لديك. إذا كنت تقوم بتشغيل AzCopy عبر شبكة عرض النطاق الترددي المنخفض، يمكنك تحديد رقم أقل ل --مستوى متوازي لتجنب الفشل الناجم عن منافسة الموارد.
تلميح
لعرض القائمة الكاملة لمعلمات AzCopy، راجع قائمة "azcopy --help".
خطوات التثبيت ل AzCopy 7.1 والإصدارات السابقة
يتطلب AzCopy على Linux (الإصدار 7.1 والإصدارات السابقة فقط) إطار عمل .NET Core. تتوفر إرشادات التثبيت في صفحة تثبيت .NET Core .
على سبيل المثال، ابدأ بتثبيت .NET Core على Ubuntu 16.10. للحصول على أحدث دليل تثبيت، تفضل بزيارة .NET Core على صفحة تثبيت 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
بمجرد تثبيت .NET Core، قم بتنزيل AzCopy وتثبيته.
wget -O azcopy.tar.gz https://aka.ms/downloadazcopyprlinux
tar -xf azcopy.tar.gz
sudo ./install.sh
يمكنك إزالة الملفات المستخرجة بمجرد تثبيت AzCopy على Linux. بدلا من ذلك إذا لم يكن لديك امتيازات المستخدم الفائق، يمكنك أيضا تشغيل azcopy
باستخدام البرنامج النصي shell azcopy في المجلد المستخرج.
المشكلات المعروفة وأفضل الممارسات
حدث خطأ أثناء تثبيت AzCopy
إذا واجهت مشكلات في تثبيت AzCopy، فقد تحاول تشغيل AzCopy باستخدام البرنامج النصي bash في المجلد المستخرج azcopy
.
cd azcopy
./azcopy
الحد من عمليات الكتابة المتزامنة أثناء نسخ البيانات
عند نسخ الكائنات الثنائية كبيرة الحجم أو الملفات باستخدام AzCopy، ضع في اعتبارك أن تطبيقا آخر قد يقوم بتعديل البيانات أثناء نسخها. إذا كان ذلك ممكنا، فتأكد من عدم تعديل البيانات التي تقوم بنسخها أثناء عملية النسخ. على سبيل المثال، عند نسخ VHD المقترن بجهاز ظاهري Azure، تأكد من عدم كتابة أي تطبيقات أخرى حاليا إلى VHD. طريقة جيدة للقيام بذلك هي عن طريق تأجير المورد الذي سيتم نسخه. بدلا من ذلك، يمكنك إنشاء لقطة من VHD أولا ثم نسخ اللقطة.
إذا لم تتمكن من منع التطبيقات الأخرى من الكتابة إلى الكائنات الثنائية كبيرة الحجم أو الملفات أثناء نسخها، فضع في اعتبارك أنه بحلول وقت انتهاء المهمة، قد لا يكون للموارد المنسخة تماثل كامل مع موارد المصدر.
تشغيل عمليات AzCopy متعددة
يمكنك تشغيل عمليات AzCopy متعددة على عميل واحد يوفر لك استخدام مجلدات دفتر اليومية المختلفة. استخدام مجلد دفتر يومية واحد لعمليات AzCopy متعددة غير معتمد.
العملية 1:
azcopy \
--source /mnt/myfiles1 \
--destination https://myaccount.blob.core.windows.net/mycontainer/myfiles1 \
--dest-key <key> \
--resume "/mnt/myazcopyjournal1"
العملية الثانية:
azcopy \
--source /mnt/myfiles2 \
--destination https://myaccount.blob.core.windows.net/mycontainer/myfiles2 \
--dest-key <key> \
--resume "/mnt/myazcopyjournal2"
الخطوات التالية
لمزيد من المعلومات حول Azure Storage وAzCopy، راجع الموارد التالية:
وثائق Azure Storage:
- مقدمة عن تخزين Azure
- إنشاء حساب تخزين
- إدارة الكائنات الثنائية كبيرة الحجم باستخدام Storage Explorer
- استخدام Azure CLI مع Azure storage
- كيفية استخدام تخزين Blob من C++
- كيفية استخدام تخزين Blob من Java
- كيفية استخدام تخزين Blob من Node.js
- كيفية استخدام تخزين Blob من Python
منشورات مدونة Azure Storage:
- الإعلان عن AzCopy على Linux Preview
- تقديم معاينة مكتبة حركة بيانات تخزين Azure
- AzCopy: تقديم نسخة متزامنة ونوع محتوى مخصص
- AzCopy: الإعلان عن التوفر العام ل AzCopy 3.0 بالإضافة إلى إصدار معاينة AzCopy 4.0 مع دعم الجدول والملفات
- AzCopy: محسن لسيناريوهات النسخ Large-Scale
- AzCopy: دعم التخزين الجغرافي المتكرر للوصول للقراءة
- AzCopy: نقل البيانات باستخدام الوضع القابل لإعادة التشغيل ورمز SAS المميز
- AzCopy: استخدام الكائنات الثنائية كبيرة الحجم لنسخ الحسابات المشتركة
- AzCopy: تحميل/تنزيل الملفات ل Azure Blobs