كيف تتصرف رسينك عن الوصول إلى الملفات المتزامنة؟

StackOverflow https://stackoverflow.com/questions/657524

  •  19-08-2019
  •  | 
  •  

سؤال

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

والآن أود أن استخدام واجهة inotify من بلدي نواة (أنا تشغيل لينكس) لكتابة التطبيقات الخلفية الصغيرة التي تجمع إشعارات حول الملفات التي تم تعديلها ويضيف اسم الدليل على قائمة التي ثم معالجتها بانتظام عن طريق مكالمة لرسينك.

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

وأنا لا يمكن أن تجد anyhing في manpage وكان بعد فاشلة في غوغلينغ عن الجواب. ويمكنني أن أسترسل قراءة المصدر، ولكن ذلك قد يستغرق بعض الوقت. أحد يعرف كيف الوصول إلى الملفات المتزامنة يتم التعامل داخل رسينك؟

هل كانت مفيدة؟

المحلول

ولم يتم التعامل معها على الإطلاق: رسينك يفتح الملف، يقرأ بقدر ما تستطيع، والنسخ التي على

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

في الحالة الأولى، هناك القليل يمكنك القيام به: إذا عمليتين الوصول إلى نفس البيانات دون أي نوع من التزامن، فإن النتيجة ستكون حالة من الفوضى. ما يمكن أن تفعله هو تأجيل رسينك لمدة N، على افتراض أن عملية الكتابة سوف تنتهي في نهاية المطاف قبل ذلك. إعادة جدولة الملف إذا كان التغييرات مرة أخرى في غضون هذه الفترة الزمنية.

في الحالة الثانية، يجب أن أقول رسينك تجاهل الملفات المؤقتة (* .TMP، * ~، الخ).

نصائح أخرى

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top