Restic: أضف أمرًا لنسخ جميع البيانات إلى مستودع تخزين آخر

تم إنشاؤها على ٢٥ أكتوبر ٢٠١٥  ·  22تعليقات  ·  مصدر: restic/restic

خلال المناقشة في # 320 ، اكتشفنا أن الوظيفة قد تكون مفيدة لنسخ جميع البيانات (كتل البيانات ، ونقاط الشجرة ، واللقطات) من مستودع إلى آخر جديد ، وإعادة إنشاء ملفات الحزم والفهارس بسرعة. يسمح هذا بإنشاء مستودع جديد في موقع مختلف (على سبيل المثال ، الانتقال من مستودع محلي إلى خادم sftp) واستخدام ذلك من الآن فصاعدًا دون فقدان أي محفوظات ولقطات قديمة.

تتعقب هذه المشكلات تنفيذ هذه الميزة ويمكن إغلاقها عند تنفيذها.

work in progress feature suggestion

التعليق الأكثر فائدة

أعتقد أني نفذت بالفعل ... / خدوش الرأس ويبحث عنها ...
... https://github.com/middelink/restic/tree/fix-323
أحتاج إلى التحقق مما إذا كان لا يزال يتراكم على الرغم من أن هذا الفرع يتخلف عن 228 التزامًا ...

ال 22 كومينتر

هل الغرض من ذلك هو معالجة نسخة لمرة واحدة من مستودع واحد (أ) إلى آخر جديد (ب)؟ أم أن هذا من المفترض أن يكون أكثر عمومية من خلال إجراء "مزامنة" أو تحديث للمحتوى الذي تم تغييره بين (أ) و (ب) منذ آخر مزامنة؟

في الوقت الحالي ، يهدف هذا إلى التعامل مع نسخة لمرة واحدة فقط ، بحيث يمكن للمستخدمين الانتقال إلى مستودع مختلف في موقع مختلف ، أو باستخدام مفتاح رئيسي جديد.

نظرًا لبطء الاتصال بالإنترنت ، أرغب في إمكانية النسخ الاحتياطي إلى s3 وموقع آخر بأكبر قدر ممكن من الكفاءة.

witeshadow لست متأكدًا من كيفية القيام بذلك بكفاءة ، حيث يتم تشفير البيانات في repo A مع Master A '، ويجب القيام به لإعادة B باستخدام مفتاح رئيسي مختلف B`. نحتاج إلى قراءة جميع البيانات وفك تشفيرها باستخدام A` والتشفير بـ B` والكتابة. لا توجد طريقة لتحسين هذا النطاق الترددي البطيء. سوف يضر ...

التحسين الوحيد الذي يمكنني التفكير فيه هو وجود معايير اختيار على مصدر الريبو A ، باستخدام عوامل تصفية المضيف والمسار والعلامات حتى لا تضطر إلى نسخ الكل. ومع ذلك ، هذا يعتمد على حالة الاستخدام الخاصة بك.

@ fd0 أردت فقط إضافة تصويتي لطلب الميزة هذا. أي شيء يمكنني القيام به لتحقيق ذلك؟

يمكنك تنفيذه ... الوظيفة نفسها ليس من الصعب القيام بها ، وتكوين الخلفيتين هو الشيء الصعب. لا ندعم الوصول إلى أكثر من خلفية واحدة (على سبيل المثال ، هناك $B2_ACCOUNT_ID واحد فقط) ... لذلك أعتقد أن هذه الميزة تعتمد على ملف التكوين المناسب (انظر # 16).

لنفترض أن لدينا اثنين من مستودعات إعادة الشراء ، A و B ، وتريد مزامنة A-> B بحيث بعد انتهاء العملية ، فإن مجموعة النقاط (واللقطات) في B هي مجموعة شاملة من مجموعة النقاط في A .

لذلك ، يمكنك فتح كل من repos وتحميل ملفات الفهرس لكل منهما. ثم تقوم بالتكرار فوق فهرس A ، لكل نقطة للتحقق مما إذا كانت النقطة موجودة أيضًا في B. إذا كان هذا صحيحًا ، فانتقل إلى النقطة التالية. إذا كانت خاطئة ، فقم بتنزيلها وفك تشفيرها وتشفيرها وتحميلها إلى B.

الأخير هو نسخ ملفات اللقطة. لكل ملف لقطة في A ، قم بفك تشفير الملف ، وقم بتشفيره مرة أخرى لـ B ، وقم بتخزينه هناك وقد تم ذلك.

كما قلت ، التنفيذ الفني سهل إلى حد ما :)

رائعة! شكرا على النصائح. لدي هذه الحكة ، لذلك سأرى ما إذا كان بإمكاني توفير الوقت لخدشها - ولكن على المدى القصير ، سأضطر إلى عدم استخدام هذه الميزة restic merge . إذا وصل شخص ما إليها قبل أن أفعل ، فلا بأس بذلك - أو سأعود مرة أخرى إلى هذا في النهاية!

أعتقد أني نفذت بالفعل ... / خدوش الرأس ويبحث عنها ...
... https://github.com/middelink/restic/tree/fix-323
أحتاج إلى التحقق مما إذا كان لا يزال يتراكم على الرغم من أن هذا الفرع يتخلف عن 228 التزامًا ...

قد يكون من المفيد السماح ليس فقط بنسخة كاملة ، ولكن أيضًا بمجموعة فرعية من اللقطات. هذا من شأنه أن يدعم حالة الاستخدام التي اقترحها # 1910 (النسخ الاحتياطي إلى الريبو الأساسي في كثير من الأحيان ، ومن هناك النسخ الاحتياطي إلى التخزين خارج الموقع / أبطأ / أكثر تكلفة في كثير من الأحيان) ، وأعتقد أنه لن يكون التنفيذ أصعب بكثير من نسخة كاملة. قد تكون إضافة مستقبلية ، على الرغم من :-)

Err… أي أخبار لمجرد المستخدمين الذين ليس لديهم مهارات مطورة لتجميعها وتجريب اقتراح @ middelink؟

هذا في الغالب تعليق "أنا أيضًا" ، لكني أرغب في امتلاك القدرة على نسخ لقطات محددة فقط من ريبو إلى آخر ، بدلاً من دلالي "نسخ الكل" أو "مزامنة" ؛ على سبيل المثال ، قم بعمل نسخ احتياطية يومية للتخزين المحلي ، ثم انسخ الأحدث يوميًا فقط إلى دلو s3 مرة واحدة في الأسبوع ، وما إلى ذلك.

حسنًا ، إذن أنت محظوظ ، تأخذ نسخة cmd الخاصة بي واحدًا أو أكثر من معرفات اللقطة. في الواقع ، ليس كل شيء يفعله شيئًا. سيتعين عليك سرد معرفات اللقطة أولاً ثم تجميعها في سطر cmdline "نسخة صحيحة". نظرًا لأنني أرى هذا كحالة استخدام متدهورة ، فأنا جيد معها.

بدون الخوض في هذا الأمر ، ربما تكون بعض المناقشات مع ncw / rclone مفيدة ...

أنا مهتم أيضًا بوظيفة الدمج / النسخ ، لدي مستودع على USB-stick وأود دمجه / نسخه إلى مستودعي المركزي (نفس كلمات المرور).
أي أخبار عن هذا؟

يبدو أنه تم تحديث فرع الشوكة إلى master ، لكن لا يوجد علاقات عامة له بعد.

middelink هل

@ theoretical2019 تم الانتهاء من الكود نفسه ، ولكن في كل مرة أجلس فيها لإنشاء علاقات عامة رسمية ، أستمر في العثور على الأشياء التي أحتاج إلى القيام بها قبل أن تصبح جاهزة. مثل التوثيق ، مثل سجل التغيير الذي لم يتم إصداره ...
أوه ، والاختبارات! هل ذكرت الاختبارات؟ يحتاج لاختبارات: P

middelink Fyi ، لقد اختبرت الفرع الخاص بك عن طريق إعادة التأسيس إلى رئيس المنبع وهو يعمل بشكل جيد. لقد أنشأت لقطة جديدة بنفس المضيف والعلامات والتاريخ: +1:
في انتظار العلاقات العامة: تادا:

الآن مع هذه الميزة ، يمكنني إنشاء مستودع ثانوي يستخدمه العملاء فقط عندما يكون المستودع الأول مغلقًا للصيانة (مثل التقليم). ويمكن أن تؤدي مهمة التقليم إلى تشغيل نسخة من المرحلة الثانوية بعد انتهائها ، لذلك لا توجد نسخ احتياطية مفقودة ، وبالتالي عدم توقف خدمة النسخ الاحتياطي.

middelink هل السماح بإجراء تعديلات من المشرفين - وبهذه الطريقة ، يمكننا مساعدتك في التغيير والتوثيق وما إلى ذلك.

الشيء المهم هو أن نحصل على قاعدة علاقات عامة للعمل عليها. أرغب في تحريك عملك الرائع ، وكذلك الأمر بالنسبة للآخرين على ما أعتقد :) أخبرني إذا كنت بحاجة إلى أي مساعدة في إنشاء العلاقات العامة!

تضمين التغريدة اسمحوا لي بالمزامنة وكل تلك الأشياء. لسبب ما لم أجد الوقت للقيام بذلك في وقت سابق ، ولكن يبدو أن لدي بعض الوقت الآن.

شكرا لكم جميعا لعملكم على هذا!

لدي سؤال واحد لم يتم الرد عليه من قبل المستندات (على الأقل بالنسبة لي): هل أحتاج إلى تقليم كليهما أم أنه يكفي لإجراء ذلك في المصدر ويتم نشر عمليات حذف اللقطة؟

lfrancke عند استخدام الأمر copy فأنت تسرد على وجه التحديد اللقطات التي تريد نسخها. اللقطات الأخرى ، سواء الموجودة أو غير الموجودة أو الموجودة سابقًا ولكن اللقطات التي تم تقليمها الآن والتي لم تعد موجودة ، غير قابلة للتطبيق.

إذا قمت بنسخ لقطات من repo A إلى repo B ثم نسيانها وتقليمها في repo A ، فلن يتم نسيانها وتقليمها في repo B تلقائيًا ، فسيتعين عليك القيام بذلك في repo B بنفسك.

ممتاز ، شكرًا جزيلاً لك rawtaz على الرد السريع والمفيد.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات