azcopy sync

ينسخ موقع المصدر إلى الموقع الوجهة. توفر هذه المقالة مرجعًا مفصلًا لأمر مزامنة azcopy. لمعرفة المزيد حول مزامنة كائنات ثنائية كبيرة الحجم بين مواقع المصدر والوجهة، راجع المزامنة مع تخزين Azure Blob باستخدام AzCopy v10. بالنسبة إلى ملفات Azure، راجع مزامنة الملفات.

الخلاصة

يُستخدم آخر وقت تعديل للمقارنة. يُتخطى الملف إذا كان آخر وقت التعديل في الوجهة أحدث. بدلا من ذلك، يمكنك استخدام العلامة --compare-hash لنقل الملفات التي تختلف في تجزئة MD5 فقط. الأزواج المدعومة هي:

  • محلي <-> Azure Blob / Azure File (يمكن استخدام مصادقة SAS أو OAuth)
  • Azure Blob <-> Azure Blob (يمكن استخدام مصادقة SAS أو OAuth)
  • Azure File <-> Azure File (يجب أن يتضمن المصدر SAS أو يمكن الوصول إليه بشكل عام، يجب استخدام مصادقة SAS للوجهة)
  • Azure Blob <-> Azure File

يختلف أمر المزامنة عن أمر النسخ بعدة طرق:

  1. بشكل افتراضي، تكون العلامة المتكررة صحيحة وتُزامن نسخ جميع الدلائل الفرعية. تقوم المزامنة بنسخ ملفات المستوى الأعلى داخل دليل فقط إذا كانت العلامة التكرارية خاطئة.
  2. عند المزامنة بين الدلائل الافتراضية، أضف شرطة مائلة لاحقة إلى المسار (راجع الأمثلة) إذا كان هناك كائن ثنائي كبير الحجم يحمل نفس اسم أحد الدلائل الظاهرية.
  3. إذا تم تعيين الإشارة 'delete-destination' على true أو prompt، فستؤدي المزامنة إلى حذف الملفات والكائنات الثنائية الكبيرة الحجم في الوجهة غير الموجودة في المصدر.

المبادئ التوجيهيه

بشكل افتراضي، يقارن أمر المزامنة أسماء الملفات والطوابع الزمنية المعدلة الأخيرة. يمكنك تجاوز هذا السلوك لاستخدام تجزئات MD5 بدلا من آخر طوابع زمنية معدلة باستخدام العلامة --compare-hash . اضبط العلامة الاختيارية --delete-destination على قيمة true أو prompt لحذف الملفات في الدليل الوجهة إذا لم تعد هذه الملفات موجودة في الدليل المصدر.

  • إذا عيّنت العلامة --delete-destination إلى true، يحذف AzCopy الملفات دون تقديم مطالبة. إذا كنت تريد ظهور مطالبة قبل أن يحذف AzCopy ملفًا، فعيّن العلامة --delete-destination إلى prompt.

  • إذا كنت تخطط لتعيين علم --delete-destination إلى prompt أو false، ففكر في استخدام أمر نسخ بدلاً من أمر مزامنة وتعيين ضابط --overwrite إلى ifSourceNewer. يستهلك أمر نسخ ذاكرة أقل ويتحمل تكاليف فوترة أقل لأن عملية النسخ لا تحتاج إلى فهرسة المصدر أو الوجهة قبل نقل الملفات.

  • إذا كنت لا تخطط لاستخدام العلامة --compare-hash ، فيجب أن يكون للجهاز الذي تقوم بتشغيل أمر المزامنة عليه ساعة نظام دقيقة لأن آخر مرة تم تعديلها مهمة في تحديد ما إذا كان يجب نقل الملف أم لا. إذا كان نظامك يحتوي على انحراف كبير في الساعة، تجنب تعديل الملفات في الوجهة القريبة جدًا من الوقت الذي تخطط فيه لتشغيل أمر المزامنة.

  • يستخدم AzCopy واجهات برمجة التطبيقات من خادم إلى خادم لمزامنة البيانات بين حسابات التخزين. وهذا يعني أن البيانات يتم نسخها مباشرة بين خوادم التخزين. ومع ذلك، يقوم AzCopy بإعداد كل عملية نقل ومراقبتها، وبالنسبة لحسابات التخزين الأكبر (على سبيل المثال، الحسابات التي تحتوي على ملايين الكائنات الثنائية كبيرة الحجم)، قد يتطلب AzCopy قدرا كبيرا من موارد الحوسبة لإنجاز هذه المهام. لذلك، إذا كنت تقوم بتشغيل AzCopy من الجهاز الظاهري (VM)، فتأكد من أن الجهاز الظاهري يحتوي على نوى/ذاكرة كافية للتعامل مع الحمل.

  • بالنسبة إلى Blob Storage، يمكنك منع عمليات الحذف العرضية عن طريق التأكد من تمكين ميزة الحذف المبدئي قبل استخدام العلامة--delete-destination=prompt|true.

خيارات متقدمة

لاحظ أنه إذا لم تحدد امتداد ملف، فإن AzCopy يكتشف تلقائياً نوع محتوى الملفات عند التحميل من القرص المحلي، بناءً على امتداد الملف أو المحتوى.

جدول البحث المدمج صغير ولكن في نظام التشغيل Unix تتم زيادته بواسطة ملف (ملفات) mime.types للنظام المحلي إذا كان متاحاً تحت واحد أو أكثر من هذه الأسماء:

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

في Windows، تُستخرج أنواع MIME من السجل.

تعمل المزامنة بشكل افتراضي خارج آخر مرة تم تعديلها إلا إذا تجاوزت هذا السلوك الافتراضي باستخدام العلامة --compare-hash . لذلك في حالة ملف Azure <-> ملف Azure، يتم استخدام حقل الرأس Last-Modified بدلاً من x-ms-file-change-time، ما يعني أن تغييرات بيانات التعريف في المصدر يمكن أن تؤدي أيضاً إلى نسخة كاملة.

azcopy sync [flags]

الأمثلة

مزامنة ملف واحد:

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

كما هو موضح أعلاه، ولكن احسب أيضًا تجزئة MD5 لمحتوى الملف، ثم احفظ تجزئة MD5 هذه كخاصية Content-MD5 الخاصة بكائن ثنائي كبير الحجم.

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

مزامنة دليل بأكمله بما في ذلك دلائله الفرعية (لاحظ أن التكرار يكون افتراضيًا):

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

مزامنة الملفات الموجودة داخل الدليل فقط ولكن ليس الدلائل الفرعية أو الملفات الموجودة داخل الدلائل الفرعية:

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

مزامنة مجموعة فرعية من الملفات في دليل (على سبيل المثال: ملفات jpg وpdf فقط، أو إذا كان اسم الملف هو "exactName"):

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

مزامنة دليل بأكمله ولكن استبعاد ملفات معينة من النطاق (على سبيل المثال: كل ملف يبدأ بـ foo أو ينتهي بـ bar):

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

مزامنة كائن ثنائي كبير الحجم واحد:

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

مزامنة دليل ظاهري:

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

مزامنة دليل ظاهري له نفس اسم كائن ثنائي كبير الحجم (إضافة شرطة مائلة لاحقة إلى المسار للتوضيح):

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

مزامنة دليل ملف Azure (نفس بناء جملة 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

ملاحظة: إذا تم استخدام علامات التضمين والاستبعاد معاً، فسيتم استخدام الملفات المطابقة لأنماط التضمين فقط، ولكن يتم تجاهل تلك التي تطابق أنماط الاستبعاد.

الخيارات

--block-size-mb (عائم) استخدم حجم الكتلة هذا (المحدد في MiB) عند التحميل إلى Azure Storage أو التنزيل من Azure Storage. يتم حساب الافتراضي تلقائيًا بناء على حجم الملف. يُسمح بالكسور العشرية (على سبيل المثال: 0.25). عند التحميل أو التنزيل، يكون الحد الأقصى المسموح به لحجم الكتلة هو 0.75 * AZCOPY_BUFFER_GB. لمعرفة المزيد، راجع تحسين استخدام الذاكرة.

--check-md5 (سلسلة) تحدد مدى دقة التحقق من تجزئة MD5 عند التنزيل. لا يتوفر هذا الخيار إلا عند التنزيل. تتضمن القيم المتاحة: NoCheck وLogOnly وFailIfDifferent وFailIfDifferentOrMissing. (default 'FailIfDifferent'). (default "FailIfDifferent")

--cpk-by-name (سلسلة) قدم العميل المفتاح بالاسم ما يتيح للعملاء الذين يقدمون طلبات مقابل تخزين Azure Blob خياراً لتوفير مفتاح تشفير على أساس كل طلب. سيُحضر اسم المفتاح المُقدم من Azure Key Vault وسيُستخدم لتشفير البيانات

--cpk-by-value قدم العميل المفتاح بالاسم ما يتيح للعملاء الذين يقدمون طلبات مقابل تخزين Azure Blob خياراً لتوفير مفتاح تشفير على أساس كل طلب. سيُحضر المفتاح المُقدم والتجزئة الخاصة به من متغيرات البيئة

--delete-destination (سلسلة) تحدد ما إذا كان سيتم حذف الملفات الإضافية من الوجهة غير الموجودة في المصدر. يمكن التعيين على "true" أو خطأ أو موجه. إذا تم التعيين على المطالبة، فسيتم طرح سؤال على المستخدم قبل جدولة الملفات والنقاط الصغيرة للحذف. (default 'false'). (default "false")

--dry-run طباعة مسار الملفات التي سيتم نسخها أو إزالتها بواسطة أمر المزامنة. هذه العلامة لا تنسخ أو تزيل الملفات الفعلية.

--exclude-attributes (سلسلة) (Windows فقط) استبعاد الملفات التي تطابق سماتها قائمة السمات. على سبيل المثال: A؛S؛R

--exclude-path (سلسلة) استبعد هذه المسارات عند مقارنة المصدر بالوجهة. لا يدعم هذا الخيار أحرف البدل (*). للتحقق من بادئة المسار النسبية (على سبيل المثال: myFolder;myFolder/subDirName/file.pdf).

--exclude-pattern (سلسلة) استبعاد الملفات التي يتطابق اسمها مع قائمة الأنماط. على سبيل المثال: .jpg؛.pdf؛exactName

--exclude-regex (سلسلة) استبعاد المسار النسبي للملفات التي تطابق التعبيرات العادية. افصل التعبيرات العادية بـ ';'.

--force-if-read-only عند الكتابة فوق ملف موجود على Windows أو Azure Files، يجبر الكتابة فوقها على العمل حتى إذا كان الملف الحالي يحتوي على مجموعة السمات للقراءة فقط.

--from-to (سلسلة) تحدد بشكل اختياري مجموعة وجهة المصدر. على سبيل المثال: LocalBlob وBlobLocal وLocalFile وFileLocal وBlobFile وFileBlob، وما إلى ذلك.

-h، --help help for sync

--include-attributes (سلسلة) (Windows فقط) قم بتضمين الملفات التي تطابق سماتها قائمة السمات. على سبيل المثال: A؛S؛R

--include-pattern (سلسلة) تضمين الملفات التي يتطابق اسمها مع قائمة الأنماط فقط. على سبيل المثال: .jpg؛.pdf؛exactName

--include-regex (سلسلة) قم بتضمين المسار النسبي للملفات التي تطابق التعبيرات العادية. افصل التعبيرات العادية بـ ';'.

--log-level (سلسلة) حدد إسهاب السجل لملف السجل، والمستويات المتاحة: INFO (جميع الطلبات والاستجابات)، وWARNING (الاستجابات البطيئة)، وERROR (الطلبات الفاشلة فقط)، وNONE (لا توجد سجلات إخراج). (الافتراضي "INFO"). (الافتراضي "المعلومات")

--mirror-mode تعطيل المقارنة على أساس وقت آخر تعديل واستبدال الملفات والنقاط المتضاربة في الوجهة إذا تم تعيين هذه العلامة على "true". الافتراضي هو false

--put-blob-size-mb استخدم هذا الحجم (المحدد في MiB) كعتبات لتحديد ما إذا كان يجب تحميل كائن ثنائي كبير الحجم كطلب PUT واحد عند التحميل إلى Azure Storage. تُُحسب القيمة الافتراضية تلقائيًا بناءً على حجم الملف. يُسمح بالكسور العشرية (على سبيل المثال: 0.25).

--preserve-permissions False افتراضياً. يحتفظ بقوائم التحكم في الوصول بين الموارد المدركة (ملفات Windows وAzure، أو ADLS Gen 2 إلى ADLS Gen 2). بالنسبة للحسابات التي تحتوي على مساحة اسم هرمية، ستحتاج إلى حاوية SAS أو رمز OAuth المميز مع أذونات تعديل الملكية وتعديل الأذونات. بالنسبة للتنزيلات، ستحتاج أيضاً إلى علامة --backup لاستعادة الأذونات حيث لن يكون المالك الجديد هو المستخدم الذي يقوم بتشغيل AzCopy. تنطبق هذه العلامة على كل من الملفات والمجلدات، ما لم يُحدد عامل تصفية للملفات فقط (على سبيل المثال، تضمين نمط).

--preserve-smb-info بالنسبة إلى المواقع التي تتعرف على SMB، سيتم تعيين العلامة على "true" افتراضياً. يحافظ على معلومات خصائص SMB (وقت الكتابة الأخير، ووقت الإنشاء، وحجم السمات بالبايت) بين موارد SMB المدركة (ملفات Azure). تنطبق هذه العلامة على كل من الملفات والمجلدات، ما لم يُحدد عامل تصفية للملفات فقط (على سبيل المثال، تضمين نمط). المعلومات المنقولة للمجلدات هي نفسها المعلومات الخاصة بالملفات، باستثناء وقت الكتابة الأخير الذي لم يتم الاحتفاظ به للمجلدات. (الافتراضي True)

--put-md5 قم بإنشاء تجزئة MD5 لكل ملف، واحفظ التجزئة كخاصية Content-MD5 للكائن الثنائي كبير الحجم الوجهة أو الملف. (لا تُنشأ التجزئة بشكل افتراضي.) متوفرة فقط عند التحميل.

--recursive صحيح افتراضياً، ابحث في الدلائل الفرعية بشكل متكرر عند المزامنة بين الدلائل. (true افتراضي). (الافتراضي True)

--s2s-preserve-access-tier الاحتفاظ بطبقة الوصول أثناء نسخ الخدمة إلى الخدمة. راجع تخزين Azure Blob: طبقات الوصول العاجلة والعادية والمؤرشفة للتأكد من أن حساب التخزين الوجهة يدعم إعداد طبقة الوصول. في الحالات التي يكون فيها إعداد طبقة الوصول غير مدعوم، يرجى استخدام s2sPreserveAccessTier=false لتجاوز نسخ طبقة الوصول. (true افتراضي). (الافتراضي True)

--s2s-preserve-blob-tags احتفظ بعلامات الفهرس أثناء الخدمة لمزامنة الخدمة من وحدة تخزين blob إلى أخرى

الخيارات الموروثة من الأوامر الأصل

--cap-mbps (عائم) الحد الأقصى لمعدل النقل، بالميغابتات في الثانية. قد تختلف الإنتاجية لحظة بلحظة قليلا عن الحد الأقصى. إذا تم تعيين هذا الخيار على صفر، أو تم حذفه، فلن يتم تحديد معدل النقل لنقظة الارتكاز.

--output-type (سلسلة) تنسيق إخراج الأمر. وتشمل الخيارات: النص، json. القيمة الافتراضية هي 'text'. (افتراضي "نص")

--trusted-microsoft-suffixes (سلسلة) يحدد لاحقات المجال الأخرى حيث يمكن إرسال رموز تسجيل الدخول المميزة ل Microsoft Entra. الافتراضي هو '.core.windows.net؛.core.chinacloudapi.cn؛.core.cloudapi.de؛.core.usgovcloudapi.net؛ *.storage.azure.net'. تتم إضافة أي قيمة مدرجة هنا إلى الإعداد الافتراضي. للأمان، يجب وضع مجالات Microsoft Azure هنا فقط. يمكنك فصل الإدخالات المتعددة بفواصل منقوطة.

(راجع أيضًا )